Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > как вывести на экран только инициалы Java


Автор: KatrinIceLand 2.9.2006, 16:10
Не могу найти правильный способ вывода на экран только инициалов при введении юзером своего полного имени. Подскажите как считывать только первые буквы в словах  smile 
Начало у меня такое:
Код

public class Names
{
  public static void main(String argv[])
  {
    System.out.println("Hello, type your full name");
    char firstLetter = SavitchIn.readChar();
    System.out.printl(firstLetter);              //первую букву читаю.. а что дальше?
    
    

    String junk = SavitchIn.readLine();
  }
}


первую букву читаю.. а что дальше?

Автор: powerOn 2.9.2006, 16:33
Вот грубый пример. 
1) Читаем строку  консоли.
2) Разбиваем её на слова.
3) Выводим на консоль первую букву каждого полученного слова на экран в верхнем регистре.

Код

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

    public Main() {
    }
    
    public static void main(String[] args) {
        // оборачиваем поток ввода в BufferedReader, для более удобного чтения строки.
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        try {
            // Читаем строку.
            String str = br.readLine();
            // Разбиваем строку на слова.
            StringTokenizer stk = new StringTokenizer(str, " ");
            // Выводим на консоль первую букву каждого полученного слова на экран в верхнем регистре.
            while(stk.hasMoreTokens()) {
                System.out.print("" + stk.nextToken().substring(0,1).toUpperCase() + " ");
            }
            
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    
}

Автор: KatrinIceLand 2.9.2006, 16:55
А есть способ попроще? Мы такие слова как BufferedReader и StringTokenizer еще и не проходили даже  smile 
В любом случае спасибо!

Автор: powerOn 2.9.2006, 17:19
Цитата(KatrinIceLand @  2.9.2006,  17:55 Найти цитируемый пост)
Мы такие слова как BufferedReader и StringTokenizer еще и не проходили даже

Ну так проиди их самостоятельно!  smile Тем более ничего сложного на самом деле здесь нет.  Не стоит бояться познавать новое.  smile 

Автор: KatrinIceLand 2.9.2006, 20:49
Цитата

Ну так проиди их самостоятельно!   Тем более ничего сложного на самом деле здесь нет.  Не стоит бояться познавать новое. 

да я не боюсь, просто у меня в учебнике для input приводятся примеры только SavichIn.readLineInt(); SavichIn.readLineNonwhiteChar(); SavichIn.readLine(); SavichIn.readInt() и я не могу найти ни один пример читающий например только пробелы или какой-нибудь другой способ для решения моей задачи. Я знаю что нет ничего сложного. Просто это первая моя задача на Java.. Может есть другой, более элементарный способ для решения этой задачи  smile 

Автор: Antropoid 3.9.2006, 16:51
Вот тебе пример по-легче.
Код

public class Names
{
  public static void main(String argv[])
  {
    System.out.println("Hello, type your full name");
    char firstLetter = SavitchIn.readChar(); 
    System.out.println(String.valueOf(firstLetter).toUpperCase());//первую букву читаю.. а что дальше?
    byte b[] = new byte[1];
    int off = 1;
    boolean  can_write = false;
    while(SavitchIn.read(b,off,1) != -1) {
     if(can_write) {
         System.out.println(new String(b).toUpperCase());
         can_write = false;
     }
     if(b[0] == 32)//встретился пробел
         can_write = true;
     off++;
    }

    String junk = SavitchIn.readLine();    
  }
}

Автор: KatrinIceLand 5.9.2006, 13:36
Спасибо! Вот это более понятный вариант.  smile 

Автор: Antropoid 5.9.2006, 22:16
Та ладно smile , всегда рад помочь...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)