获取一个或多个以字符序列结尾的行的输入,而不仅仅是按空格或新行分隔的-java
我需要读取以“开始”、“开始”或“开始”开头的用户输入,并且输入可以是一行或多行,直到用户写入“结束”、“结束”或“结束”。结束用非字母字符(新行、空格或“}”等)与前面的字符串分隔 我试过这样的方法,但我知道那是错误的获取一个或多个以字符序列结尾的行的输入,而不仅仅是按空格或新行分隔的-java,java,string,Java,String,我需要读取以“开始”、“开始”或“开始”开头的用户输入,并且输入可以是一行或多行,直到用户写入“结束”、“结束”或“结束”。结束用非字母字符(新行、空格或“}”等)与前面的字符串分隔 我试过这样的方法,但我知道那是错误的 String everything = sc.next(); while (true) { String part = sc.next(); part.toUpperCase(); if (part.equals("END")) { ev
String everything = sc.next();
while (true) {
String part = sc.next();
part.toUpperCase();
if (part.equals("END")) {
everything = everything.concat(part);
break;
} else {
everything = everything.concat(part);
}
}
我觉得你一次做的事情太多了。你的方法可能会奏效,但会让事情变得更复杂。首先,获取用户输入并将其存储在列表中。一旦他按下END,然后写一些代码来连接它,或者你想用它做的任何事情
Scanner sc=new Scanner(System.in);
ArrayList<String> all=new ArrayList<>();
while (true) {
String part = sc.next();
if (part.toUpperCase().equals("END")) {
break;
}
all.add(part);
}
//then do whatever you want with that list.
Scanner sc=新扫描仪(System.in);
ArrayList all=新的ArrayList();
while(true){
字符串部分=sc.next();
if(part.toUpperCase().equals(“END”)){
打破
}
全部。添加(部分);
}
//然后你想怎么做就怎么做。
part=part.toUpperCase()代码>字符串是不可变的。或者只使用equalsIgnoreCase
代替equals
。谢谢,我没有注意到这一点,但这不是主要问题。从您的问题来看,您不太清楚您的问题是什么。您是否需要将扫描仪的分隔符设置为除空格以外的其他字符?我需要使用“end”结束用户输入,并且在该单词之前的分隔符可以是除字母以外的任何字符。但是有一个问题,当用户输入例如“end”时,程序应该结束获取输入。啊,好的。然后将:.equals(“结束”)更改为.contains(“结束”)