【问题标题】:StringTokenizer delimit onceStringTokenizer 分隔一次
【发布时间】:2014-02-25 13:39:33
【问题描述】:

我想用第一个空格分割一个字符串(行),但只有第一个。

StringTokenizer linesplit = new StringTokenizer(line," ");

以“这是一个测试”为例。然后我希望字符串是“This”和“is a test”。我该如何使用 StringTokenizer 还是有更好的选择?

【问题讨论】:

    标签: java split stringtokenizer


    【解决方案1】:

    String.split(pattern,resultlength) 做到了。 使用:

    String[] splitted = line.split(" ",2);
    

    ',2' 参数表示生成的 Array 最大大小为 2。

    【讨论】:

    • +1 非常好的解决方案。我没有意识到split 有这种能力。
    • 它会返回“This”和“is a test”还是“This”和“is”?
    • @Fazovsky “这个”和“是一个测试”
    【解决方案2】:

    你可以这样做:

    String firstPart = line.substring(0, line.indexOf(" "));
    String secondPart = line.substring(line.indexOf(" ")+1);
    

    检查文档: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

    【讨论】:

      【解决方案3】:

      你可以使用拆分

      String[] a = s.split("(?<=^\\S+)\\s");
      

      【讨论】:

        【解决方案4】:

        您必须为此调整自己的逻辑。像这样:

        String[] linesplit = line.split(" ");
        String firstString = linesplit[0];
        String secondString = new String();
        for(for int i=1; i< linesplit.length; i++)
        {
            if(i==1)
            {
                secondString =  linesplit[i];
            }
            else if(i != linesplit.length-1)
            {
                secondString = seconString + " " + linesplit[i];
            }
            else
            {
                secondString = seconString + linesplit[i] + " ";
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-08
          • 2020-01-08
          • 2015-05-11
          • 1970-01-01
          相关资源
          最近更新 更多