我正在用Java编写TextReader()
类作为作业,我试图用任何空格分隔String
,如下所示:
String[] splitString;
while (readLine != null) {
//assign each word to an array
splitString = splitString.split("\\s+");
}
但是,我收到错误“找不到符号拆分()”我已经查看了之前的一些问题,但没有任何效果。
答案 0 :(得分:8)
您的splitString
应该是要使用拆分的String对象。
确保你有这个声明
String splittString = readLine.toString();
String[] splittedStringsArray = splittString.split('\\s+');
答案 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