2013-04-16 81 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(" "); 
相關問題