【问题标题】:Take input as series of string till # is found in JAVA [duplicate]将输入作为一系列字符串,直到在 JAVA 中找到 # [重复]
【发布时间】:2020-03-25 17:03:49
【问题描述】:

我想将字符串作为用户的输入,直到“#”是输入,即一系列字符串(都在不同的行中),直到找到“#”并将字符串存储在字符串类型的数组列表中。我用 JAVA 编写了这段代码,但它没有按要求工作。

导入 java.util.ArrayList; 导入 java.util.Scanner;

公共类 wordMetaMorphism {

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() 获取下一个令牌。每次调用它。不是您在上一次调用sc.next() 时读到的那个。变量是你的朋友。

标签: java arrays string eclipse while-loop


【解决方案1】:

您正在调用 sc.next() 并检查该行是否等于“#”,然后读取下一个标记。这导致它与每个备用令牌一起发生。

你可以这样做:

String token = "";
while(!((token = sc.next()).equals("#")))input.add(token);

而不是你有的while循环。

【讨论】:

    【解决方案2】:
    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);
    }
    
    }
    

    【讨论】:

      【解决方案3】:

      我已经修改了你的代码,请检查下面

      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);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-08
        • 1970-01-01
        • 2017-04-08
        • 2016-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多