【问题标题】:Java convert string to string array by spacesJava通过空格将字符串转换为字符串数组
【发布时间】:2014-01-09 05:52:12
【问题描述】:

我想将字符串转换为字符串数组。我做了这样的事情:

String name = "name";
String[] letters = name.split("(?<=.)");
System.out.println("letters = " + Arrays.toString(letters));

但现在我想要这样的东西:

String name = "John Mark Lester Andrew Todd";

像这样打印数组:

[John, Mark, Lest, Andrew, Todd]

所以我想在我的字符串中查找空格,然后将它们放入一个字符串数组中。你有想法吗?非常感谢您的帮助。谢谢。

【问题讨论】:

  • 这个打印你想要什么System.out.println(Arrays.toString(name.split(" ")));

标签: java arrays string


【解决方案1】:

您可以在whitespace 上简单地split() 您的字符串。

String[] words = name.split(" ");

【讨论】:

    【解决方案2】:

    您可以使用split() 并创建一个数组。

    String name = "John Mark Lester Andrew Todd";
    String[] names=name.split(" ");
    

    【讨论】:

      【解决方案3】:

      需要根据什么标准或字母拆分字符串,需要在

      下提供
        string.split(" ");
      

      所以,你可以尝试使用这些更新的代码:::

       String name = "John Mark Lester Andrew Todd";
       String[] letters = name.split(" ");
       System.out.println("letters = " + Arrays.toString(letters));
      

      输出将是::

        letters = [John, Mark, Lester, Andrew, Todd]
      

      为了更好地理解在java中分割字符串,你可以去这个链接。 http://www.tutorialspoint.com/java/java_string_split.htm

      【讨论】:

      • 我认为最好使用“\\s+”而不是“”。
      • 兄弟我们都去过那里.. :)
      【解决方案4】:

      或许你可以使用StringTokenizer

      【讨论】:

      • 你忘了提及StringTokenizer - StringTokenizer 是一个遗留类,出于兼容性原因保留,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。
      • 我的错。文档中甚至提到了 split 方法。无论如何,刚刚指出这也是可能的。但它已被弃用。
      【解决方案5】:

      你可以使用:

      String values=Arrays.toString(name.split(" "));
      
      or
      
      String values[] = name.split("\\s")
      

      【讨论】:

        【解决方案6】:

        最灵活的是在所有空格上分割:

        String names = "John  \t\t  Mark  Lester \n  Andrew Todd \r";
        
        System.out.println(Arrays.toString(names.split("\\s+")));
        

        输出:

        [约翰、马克、莱斯特、安德鲁、托德]

        \\s+ 是“任何长度的任何空白字符”的正则表达式。同样,如果您只关心空格:

        String names = "John  Mark  Lester   Andrew Todd  ";
        
        System.out.println(Arrays.toString(names.split(" +")));
        

        (输出与上面相同。)

        当然,这两个也会分割单个空格。

        【讨论】:

        • 您更改了names 的实际值,并且OP 想要以[John, Mark, Lest, Andrew, Todd] 格式输出。但我同意使用"\\s+" 而不是" "
        • @RafaEl 我所做的只是修改它以显示正则表达式处理任何空格。那将是拒绝投票的愚蠢理由。正则表达式也拆分了 OP 的单个空格输入。
        • @RafaEl 因为它们是空白字符。 \t 是制表符,\n 是换行符,\r 是回车符。
        • @RafaEl 我认为正则表达式的作用很清楚。我认为有人只是有一个空洞的投票理由。感谢您提供帮助。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 2011-06-18
        相关资源
        最近更新 更多