找不到Java中的.split()方法

时间:2014-03-16 15:48:19

标签: java split

我正在用Java编写TextReader()类作为作业,我试图用任何空格分隔String,如下所示:

 String[] splitString;

 while (readLine != null) {
   //assign each word to an array

   splitString = splitString.split("\\s+");

}

但是,我收到错误“找不到符号拆分()”我已经查看了之前的一些问题,但没有任何效果。

4 个答案:

答案 0 :(得分:8)

您的splitString应该是要使用拆分的String对象。 确保你有这个声明

String splittString = readLine.toString();
String[] splittedStringsArray = splittString.split('\\s+');

String split reference.

答案 1 :(得分:2)

问题是您的splitString变量应该是String,您可以拆分,但是您已将其声明为String[]。假设您正在使用Scanner对象scanner(因为您正在使用while循环进行读取而疯狂猜测),您可能想要做的是:

ArrayList<String> splitString = new ArrayList<String>();
while (scanner.hasNextLine()) {
    for (String s : scanner.nextLine().split("\\s+")) {
        splitString.add(s);
    }
}

答案 2 :(得分:1)

split()是属于String类的方法。你的splitString是一个数组o字符串,因此它不能作为一个整体使用split()方法。 要实现这一点,您必须使用类似splitString = splitString[0].split("\\s")

的内容

答案 3 :(得分:1)

这对我来说也是一样。我使用Maven启动了一个新的Kafka流应用程序。命令在这里,

$ mvn archetype:generate \
    -DarchetypeGroupId=org.apache.kafka \
    -DarchetypeArtifactId=streams-quickstart-java \
    -DarchetypeVersion=2.0.0 \
    -DgroupId=streams.examples \
    -DartifactId=streams.examples \
    -Dversion=0.1 \
    -Dpackage=myapps

我得到了这样的自动生成的代码段

builder.stream("streams-plaintext-input")
                .flatMapValues(value -> Arrays.asList(value.split("\\W+")))
                .to("streams-linesplit-output");

这显示错误Cannot Resolve Method split(java.lang.String)。显然,split方法属于String类,因此,我如下进行了更改,

builder.stream("streams-plaintext-input")
                .flatMapValues(value -> Arrays.asList(value.toString().split("\\W+")))
                .to("streams-linesplit-output");

我很好奇为什么Maven原型提供了错误的代码段。我说的是Java 8