【发布时间】:2019-05-08 10:43:12
【问题描述】:
用户应该输入多个单词(不考虑小写/大写),中间有空格,然后此文本将被翻译成首字母,不包含任何空格。但是,我只想要我认可的单词的首字母,如果不是这些单词,打印输出会改为“?”而不是打印单词的第一个字母。 E.q: "hello hello hello" 会输出为:"HHH",但 "hello hi hello" 或 "hello . hello" 会改为 "H?H"。
我设法让它打印出不带空格的首字母。但我不知道如何添加一个条件,程序将首先检查输入是否包含未经批准的单词或符号/符号,以便用问号替换未经批准或非单词,而不是继续前进打印首字母/符号。我尝试将 for 循环放在 if-else-loop 中并使用 switch()-loop,但它们不会与 for 循环正确交互。
public static void main (String []args) {
Scanner keyboard = new Scanner (System.in);
System.out.println("Enter your words: ");
String input = keyboard.nextLine().toUpperCase();
String str = input;
String[] parts = str.split(" ");
System.out.print("The initials: ");
for (String i : parts) {
System.out.print(i.charAt(0));
}
}
所以现在发生的情况是,无论用户输入什么单词,都会打印每个单词或符号/符号的首字母。
【问题讨论】:
-
在 for 循环中你可以添加 "If (condition) " { System.out.print(i.charAt(0)); } else { do nothing },我建议条件是检查您的“部分”是否存在于已批准的单词列表中。
标签: java arrays split char charat