【问题标题】:how to print part of a string in Java如何在Java中打印字符串的一部分
【发布时间】:2011-09-05 18:33:37
【问题描述】:

代码:

InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(reader);
String input = in.readLine();
ArrayList<String> massiiv = new ArrayList();
for (int i = 0; i < input.length(); i++)
   massiiv.add(input[i]); // error here

嗨!

如何拆分输入并将输入添加到数据结构 massiiv?

例如,输入是:“你住在哪里?”。然后massiiv显示是:

massiv[0] = where
massiv[1] = do
massiv[2] = you

谢谢!

【问题讨论】:

  • 创建正则表达式以删除列入黑名单的单词,然后简单地拆分字符串

标签: java string arraylist


【解决方案1】:

Java 文档是您的朋友:

http://download.oracle.com/javase/6/docs/api/java/lang/String.html

String[] myWords = input.split(" ");

【讨论】:

    【解决方案2】:
    InputStreamReader reader = new InputStreamReader(System.in);
    BufferedReader in = new BufferedReader(reader);
    String input = in.readLine();
    
    String[] massiiv = input.split(" ");
    

    【讨论】:

    • 应该是String[] splitted...
    • splitted 将是 String[] 而不是 String
    【解决方案3】:

    使用StringTokenizer,它允许应用程序将字符串分解为标记。

    使用空格作为分隔符,将returnDelims 标志设置为 false,以便空格仅用于分隔标记。那么

         StringTokenizer st = new StringTokenizer("this is a test");
         while (st.hasMoreTokens()) {
             System.out.println(st.nextToken());
         }
    

    打印以下输出:

         this
         is
         a
         test
    

    【讨论】:

    • 来自文档:StringTokenizer 是一个遗留类,出于兼容性原因保留,但不鼓励在新代码中使用它
    【解决方案4】:

    尝试使用split(String regex)

    String[] inputs = in.readLine().split(" "); //split string into array
    ArrayList<String> massiiv = new ArrayList();
    for (String input : inputs) {
        massiiv.add(inputs);
    }
    

    【讨论】:

      【解决方案5】:

      您将在 java 中使用 string.split() 方法。在你的情况下,你想分割字符串中的空格,所以你的代码是:

      massiiv = new ArrayList(input.split(" "));
      

      如果您不想在输出中包含单词 you,则必须进行额外处理。

      【讨论】:

        【解决方案6】:

        单线解决方案。字符串之间可以有任意数量的空格。

        ArrayList<String> massiiv =  new ArrayList(Arrays.asList(input.split("\\s+")));
        

        【讨论】:

          猜你喜欢
          • 2021-12-23
          • 2014-08-05
          • 1970-01-01
          • 2014-05-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-03
          相关资源
          最近更新 更多