2013-04-22 3 views
-4

Мне нужна помощь с моим кодом. Я хочу преобразовать объект String в char [], используя метод toCharArray(), но я не могу заставить его работать.Java - Преобразование строки в char []

У меня есть эта функция в классе имени словник:

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

И я вызываю функцию с переменным Резом строки:

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

Тогда, кажется, вернуть нуль, так как значение результата нулевой. Но если изменение Содержит следующие значения:

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

Затем оно печатает строку. Как это возможно? Что случилось с моей функцией?

+0

Что такое тип 'list'? Какова ценность 'res'? –

+0

Просто обратите внимание, что вам не нужно инициализировать результат, так как вы назначаете его на следующей строке – eldris

+3

утверждение после 'if (list.contains (w))' ничего не возвращает -> не будет компилировать – Puce

ответ

2

Я не знаю, что вы пытаетесь достичь, но:

а) читать о ява именования

б) Список <> (и несколько других в java.util) имеет метод (так называемый ваш Содержит причины путаницы)

c) Вы действительно хотите вернуть null в свой метод «Содержит»?

d) список (я полагаю, вы имеете в виду java.util.List) никогда не объявляла и не инициализируется

е) Я полагаю, Рез является строка. он никогда не объявляется не инициализированным.

Это должно дать вам идею:

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

Подумайте о том, как использовать Set Set of List. – Puce

+0

Хорошая идея, я согласен, так как наборы не позволяют повторения. Я использовал список, потому что предположил, что ему нужен список. Благодарю вас. – monika

+0

Наборы также обычно более эффективны при проверке «содержит». (HashSet: O (1), ArrayList: O (n)) – Puce

Смежные вопросы