Java Split()方法未被识别

时间:2013-04-16 05:05:04

标签: java

我必须使用方法split(),如下面的代码所示,但编译器会抛出错误:

String defA1[] = new str1.split(" ");

抛出的错误说:

error: package str1 does not exist
       String defA2[] = new str1.split(" ");
                                ^

显然它不是一个包,str1是一个先前定义的字符串,作为方法的参数,如下所示:

public static int calculateLevenshteinDistance(String str1, String str2) { ... }

我也在导入包java.lang

import java.lang.*;

甚至明确

import java.lang.String;

请不要建议StringTokenizer,我想知道为什么这不起作用。

你也可以用别的东西帮我。我尝试将包导入为静态,只是想知道是否可以修复它:

import static java.lang.*;

但是编译器会说:

error: cannot find symbol
            import static java.lang.*;
                              ^

只有在我将“静态”添加到导入时才会发生这种情况,并且会发生任何静态导入,我不知道为什么。

我正在使用JVM进行编译。

3 个答案:

答案 0 :(得分:4)

你的语法错了。你应该使用String defA1[] = str1.split(" ");new关键字用于调用类构造函数并创建类的新实例。更多信息:Oracle Java Tutorial: Creating Objects

顺便说一下,Java编译器已经添加了import java.lang.*,无需向此包添加static导入。

还有一点需要注意,JVM(JRE)并不是为了编译代码而只是为了运行它。您可以使用Java SDK编译Java代码。更多信息:What is the difference between JDK and JRE?

附加:如果你想知道为什么编译器会给你消息错误包str1不存在

编译器正在尝试读取此行

new str1.split(" ");

as 创建split包中的类str1的新实例,并将String参数发送给值为" "的构造函数。< / em>这显然是错误的。

答案 1 :(得分:2)

使用此

String defA1[] = str1.split(" ");

无需新操作员

答案 2 :(得分:1)

应该是:

String defA2[] = str1.split(" ");