如何获取和拆分多行输入的字符串行,然后将它们添加到Java中的arrayList中?

如何获取多行字符串并将其按空格分割,然后添加到Java中的ArrayList中?

输入的第一行是整数,该整数指示应扫描字符串的行数。此输入将用于检查字谜单词,然后打印反字谜单词。这些单词应按空格分开,并删除破折号(-)。

示例输入:

4
sali est p-o-s-t try tset luf
set boo ins pick too let sim
set post sho kim lack
flu est test soo tick
public static Scanner scan;
public static void main(String[] args) {
     scan = new Scanner(System.in);
     int l = scan.nextInt();
     scan.nextLine();
     String[][] arr = new String[][];
     List<String> ss1 = new ArrayList<String>();
     for (int i=0; i<l; i++) {
       arr[i] = scan.nextLine().replaceAll("\\-","").split("\\ |\\n");
            String[] dd = arr[i];
            String ddd = dd[i];
            ss1.add(ddd);
         }
      } 
      ...
}

或者这个:

public static Scanner scan;
public static void main(String[] args) {
    scan = new Scanner(System.in);
    int line = scan.nextInt();
    scan.nextLine();
    String str = "";
    ArrayList<String> shd = new ArrayList<String>();
    for (int i=0; i<line; i++) {
        str += scan.nextLine();
        shd.add(str);
     }
}

此输入将用于检查字谜单词,然后打印反字谜单词。这些单词应按空格分开,并删除破折号(-)。

应按[[sali,est,p-o-s-t,...]

实际输出:

[sali est p-o-s-t try tset luf,sali est p-o-s-t try tset lufset boo ins pick too let sim,sali est p-o-s-t try tset lufset boo ins pick too let simset post sho kim lack,sali est p-o-s-t try tset lufset boo ins pick too let simset post sho kim lackflu est test soo tick]
zhuangmisi 回答:如何获取和拆分多行输入的字符串行,然后将它们添加到Java中的arrayList中?

你是说吗?

Scanner io = new Scanner(System.in);
int n = io.nextInt();
io.nextLine();
List<String> list = new ArrayList<>();
for (int i = 1; i <= n; i++) {
    String str = io.nextLine();
    String join = String.join("",list) + str;
    list.add(join);
}
,

您可以考虑以下代码

public static Scanner scan;
public static void main(String[] args) {
    ArrayList<String> shd = new ArrayList<>();
    scan = new Scanner(System.in);
    String line = scan.nextLine();
    int lines = Integer.parseInt(line);
    //Loop scanner for each line
    for (int i=0;i<lines;i++){
        String currentLine = scan.nextLine().trim().replaceAll("-","");
        String [] words = currentLine.split(" ");
        for (String word:words){
            shd.add(word);
        }
    }
    System.out.println(shd);
}

我对Scanner读取int行的方式进行了更改,因为nextInt()会读取下一个整数标记而不是nextLine,因此有人可能会输入43。在这种情况下,将4读取为Int并3作为下一行。 让nextLine()读取整行,然后将其解析为整数将解决此问题。

稍后循环播放尽可能多的行,并且代码读取了该行,对其进行了修剪,从而删除了开头和结尾的空格,最后将-替换为空字符串。

然后,代码将行分成每个空格字符的单词部分,并将每个单词添加到ArrayList中。

示例:

4
sali est p-o-s-t try tset luf
set boo ins pick too let sim
set post sho kim lack
flu est test soo tick
[sali,est,post,try,tset,luf,set,boo,ins,pick,too,let,sim,sho,kim,lack,flu,test,soo,tick]
本文链接:https://www.f2er.com/3167916.html

大家都在问