2013-04-16 39 views
1

我必须使用的方法split()如下面的代码,但是编译器会引发错误:的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进行编译。

+0

什么的'new'在那里做什么? – chris

回答

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(" "); 

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

2

使用本

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

无需新的运营商的

1

它应该是:

String defA2[] = str1.split(" "); 
相关问题