我正在试图找出如何让某人输入字符串,然后打印出来,只用一个空格分隔Java中的每个字符串。如果你也可以帮我弄清楚如何摆脱它的输出中的“结束”也会有所帮助。这是我到目前为止的代码
Scanner s = new Scanner (System.in);
System.out.println("Enter the values for the first array, up to 10000 values, enter 'End' to quit");
ArrayList<String> firstString = new ArrayList<String>();
for(int i = 0; i <= 9999; i++)
{
firstString.replaceAll(String::toLowerCase);
if(firstString.contains("end"))
{
Collections.sort(firstString);
break;
}
else
firstString.add(s.nextLine());
}
String firstStringOut = firstString.toString();
firstStringOut.replace(",", "");
System.out.println(firstStringOut);
}
}
答案 0 :(得分:0)
用以下代码替换最后3行代码:
StringBuilder sb = new StringBuilder();
for (String str : firstString) {
if (!str.equalsIgnoreCase("end")) {
sb.append(str);
sb.append(" ");
} else {
sb.deleteCharAt(sb.lastIndexOf(" "));
}
}
System.out.println(sb.toString());
它将构建一系列您添加到列表中的所有内容,并在打印时显示每个以空格分隔的值(也忽略“结束”)。
或者你只是链接替换或创建一个正确的正则表达式:
firstStringOut = firstStringOut.replace(",", "").replace("[", "").replace("]", "").replace("end", "");
firstStringOut = firstStringOut.replaceAll(",|\\[|\\]|end", "");
所有方法都运行良好,但第一种方法最好使用IMO。