2016-01-31 4 views
0

Я прочитал другие подобные вопросы, но они не очень помогли. Я хочу предложить пользователю ввести три строки слов, а затем я хочу вывести капитал первого символа каждого слова.Как напечатать одну букву строки, введенную пользователем в Java?

Например ..

пользователь вводит "Benjamin Andrew Linus"

и программа печатает "BAL".

Я пробовал использовать char name = charAt(), но это не то, что я должен использовать для этого.

Это то, что я до сих пор ...

import java.util.Scanner; 

public class Initials { 
    public static void main(String[] args) { 

    Scanner in = new Scanner(System.in); 

     System.out.print("Enter your full name: "); 
     String first_name = in.next(); 
     String middle_name = in.next(); 
     String last_name = in.next(); 
    } 
} 
+0

использование '' 'in.nextLine() ; '' ' –

+0

не будет использовать все три слова для создания строки? – Rsloop99

+0

Извините, я ничего не заметил. Проверьте мой обновленный код. –

ответ

1

Дать весь код не поможет. Я просто даю вам подсказку.

Это может быть полезно:

Character.isUpperCase(first_name.charAt(<int poistion in string>)); 
+0

Хорошо, это, похоже, сработало, но как я могу позвонить ему, чтобы распечатать его? – Rsloop99

+0

Если 'Character.isUpperCase' возвращает' true', то вы будете печатать с той же самой позицией int в 'first_name.charAt ()'. Если символ верхнего регистра всегда находится в начале каждого слова, тогда он должен быть «charAt (0)». Если верхний регистр появляется в любом месте строки, вам необходимо выполнить итерацию каждого символа строки, чтобы найти прописную букву. – Armaiti

+0

Правильно, но я попробовал String initial = first_name.charAt (0), и он говорит, что вы не можете изменить строку с символа – Rsloop99

0

Попробуйте использовать раскол разделить полное имя на три строки.

Таким образом, вы можете попробовать следующее:

String name = in.nextLine().split(" "); 
String initial = ""; 
for(int i = 0; i < 3; i++) { 
    initials += name[0].charAt(0); 
} 
+0

Я пробовал первый, но у меня такая же ошибка, что и у меня, когда я пытался использовать charAt(), как и вы. "не может преобразовать из int в строку" Должен ли я попробовать его подкачку? – Rsloop99

+0

Int? Однако это должно быть строка. https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next() –

0

Используя ответы, данные мне, это то, что, наконец, работал для меня ...

System.out.print("Enter your full name: "); 
    String first_name = in.next(); 
    String middle_name = in.next(); 
    String last_name = in.next(); 

    String initial1 = String.valueOf(first_name.charAt(0)).toUpperCase(); 
    String initial2 = String.valueOf(middle_name.charAt(0)).toUpperCase(); 
    String initial3 = String.valueOf(last_name.charAt(0)).toUpperCase(); 

    System.out.print(initial1 + initial2 + initial3); 
Смежные вопросы