我正在尝试创建一个程序,该程序接受用户的输入(假设有3个单词)并输出第一个单词大写,第二个单词小写,第三个单词仅输出前两个字符。我不明白为什么第三个字符是整个打印加上前两个字符,而不仅仅是前两个字符。非常感谢!到目前为止我有这个:
import java.util.Scanner;
public class Words {
public static void main (String[] args){
Scanner keyboard = new Scanner(System.in);
String line = keyboard.nextLine();
String word1 = line.substring(0, line.indexOf(" ")).toUpperCase();
String word2 = line.substring(line.indexOf(" ") +1).toLowerCase();
String word3 = line.substring(line.lastIndexOf(" ")+1).substring(0,
,2);
System.out.println(word1 + " " + word2 + " " + word3);
}
}
输出:
JAVA is fun fu
最佳答案
你说
String word2 = line.substring(line.indexOf("") +1).toLowerCase();
这使得word2
假设is fun
的值。另外,对于单词 3,您可以输入 .substring(0,2)
(因为子字符串的第二个数字不包含在内),这会引入 fu
,从而创建输出 JAVA 很有趣
。
另一种实现可能是仅按空格分割字符串并轻松将其分配给三个变量。
关于java - 如何使用 .indexOf() 在 Java 中分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47115123/