2013-04-22 284 views
-4

我需要一些幫助來處理我的代碼。我想使用toCharArray()方法將一個String對象轉換爲一個char [],但是我無法使它工作。Java - 將字符串轉換爲字符[]

我有一類名爲單詞表這一功能:

static public char[] Contains(String w) 
    { 
    if (list.contains(w)) return w.toCharArray(); 
     else return null; 
    } 

我呼籲與字符串變量RES功能:

char[] result = new char[4]; 
result = WordList.Contains(res); 

然後好像返回null,因爲結果的值一片空白。但如果更改包含以下內容:

static public char[] Contains(String w) 
     { 
     if (list.contains(w)){ 
      System.out.println(w.toCharArray()); 
      } 
     else return null; 
     } 

然後它打印字符串。這怎麼可能?我的功能有什麼問題?

+0

什麼是'list'的類型? 「res」的價值是什麼? – 2013-04-22 17:36:39

+0

只是一個註釋,你不需要初始化結果,因爲你在下一行分配它 – eldris 2013-04-22 17:37:54

+3

'if(list.contains(w))'沒有返回任何東西 - >將不會編譯 – Puce 2013-04-22 17:38:15

回答

2

我不知道你想實現什麼,但:

一)閱讀有關Java命名約定

B)列出<>(和其他幾個java.util中)有一個方法稱爲.contains(所以調用你的包含導致混淆)

c)你真的想在你的「Contains」方法中返回null嗎?

d)名單(我想你的意思的java.util.List)是從未宣佈過,也沒有初始化

E)我相信資源是一個字符串。它永遠不會被聲明爲未初始化。

這應該給你一個想法:

public static void main(String args[]) 
{ 

    String str = "someString"; 
    List<String> list = new ArrayList<String>(); 

    list.add(str); 
    char[] charArray = containsString(str,list); 
    System.out.println(charArray); 
} 
public static char[] containsString(String str, List<String> list) 
{ 
    if (list.contains(str)) return str.toCharArray(); 
     else return null; 
} 
+0

請考慮使用List的List和Set。 – Puce 2013-04-22 18:07:12

+0

好主意,我同意,因爲集合不允許重複。我使用了一個列表,因爲我認爲他需要一個列表。謝謝你。 – monika 2013-04-22 18:23:00

+0

當檢查「包含」時,集合通常也更高效。 (HashSet:O(1),ArrayList:O(n)) – Puce 2013-04-23 08:26:12