【问题标题】:Can't make split() function to do what I want不能让 split() 函数做我想做的事
【发布时间】:2014-05-04 14:32:07
【问题描述】:

我对@9​​87654322@ 有疑问。当输入像“This is a text”这样的文本时,它只会打印“This”。

public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("Enter bta3 ");
        Scanner s1 = new Scanner(System.in);
        String toParse = s1.next();
        String delims = "[ ]+";
        String[] tokens = toParse.split(delims);
        for (int i = 0; i < tokens.length; i++) {
            {
                System.out.println(tokens[i]);
            }
        }
    }

【问题讨论】:

  • 你想打印什么?
  • String.split 采用 regex 作为参数
  • 注意:你有一组不必要的大括号。你有for (int i = 0; i &lt; tokens.length; i++) { { System.out.println(tokens[i]); } },但它应该是for (int i = 0; i &lt; tokens.length; i++) { System.out.println(tokens[i]); }

标签: java split token


【解决方案1】:

您的问题不在于split,而在于Scanner,它默认使用一个或多个连续空格作为分隔符,因此s1.next() 将只从用户输入中返回一个单词(没有空格),这意味着

String toParse = s1.next();

对于像This is a text 这样的输入将变为This(因此没有空格可以拆分)

如果您想从用户输入中读取全部数据,请使用s1.nextLine()

【讨论】:

    猜你喜欢
    • 2011-02-27
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多