将输入作为字符串序列,直到在JAVA中找到为止
我想将字符串作为用户的输入,直到找到输入,即一系列不同行中的字符串,并将字符串存储在string类型的arraylist中。我用JAVA编写了这段代码,但它不能按要求工作 导入java.util.ArrayList; 导入java.util.Scanner 公共类词语变形{将输入作为字符串序列,直到在JAVA中找到为止,java,arrays,string,eclipse,while-loop,Java,Arrays,String,Eclipse,While Loop,我想将字符串作为用户的输入,直到找到输入,即一系列不同行中的字符串,并将字符串存储在string类型的arraylist中。我用JAVA编写了这段代码,但它不能按要求工作 导入java.util.ArrayList; 导入java.util.Scanner 公共类词语变形{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList<String> in
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> input = new ArrayList<String>();
while(!(sc.next().equals("#"))) {
String s = sc.next();
input.add(s);
}
System.out.println(input);
}
}
我得到了这个输出,其中只存储了备用字符串。我也试过sc.nextLine,但都是一样的
输入倾角
嘴唇
疯狂的
地图
枫树
也许
衬垫
皮普
豆荚
流行音乐
液
小口喝
片
滑溜的
香料
粘贴
股票
输出-[lip,map,may,pip,pop,sip,slick,stick,]您正在呼叫sc.next并检查该行是否等于,然后读取下一个令牌。这导致它与每个备用令牌一起发生 您可以这样做:
String token = "";
while(!((token = sc.next()).equals("#")))input.add(token);
而不是你的while循环。我已经修改了你的代码,请检查下面
import java.util.ArrayList; import java.util.Scanner;
public class wordMetaMorphism {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> input = new ArrayList<String>();
while(sc.hasNext()) {
String s = sc.next();
if(s.equals("#")) break;
input.add(s);
}
System.out.println(input);
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class wordMetaMorphism {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> input = new ArrayList<String>();
String s = sc.next();
while(!(s.equals("#"))) {
input.add(s);
s = sc.next();
}
System.out.println(input);
}
}
sc.next获取下一个令牌。每次你叫它。不是你刚才在上一次呼叫sc.next时读到的。变量是你的朋友。