2013-04-22 232 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