2012-03-10 3 views
-1

Приложение считывает значение TextEdit в String и затем преобразует его в ArrayList. Но перед преобразованием удаляет пробелы между словами в TextEdit. Поэтому после преобразования я получаю размер ArrayList только 1.String to ArrayList

Так что мой вопрос в том, как получить реальный размер. Я использую ArrayList из-за своей функции swap().

outputStream.setText(""); 
     stream = inputStream.getText().toString().replace(" ", ""); 
     key = Integer.parseInt(inputKey.getText().toString()); 

     List<String> arrayList = Arrays.asList(stream); 
     int lenght = arrayList.size(); 
     if (key < lenght) 
     { 
      outputStream.append(lenght+"\n"); 
      outputStream.append("OK"); 
     } 
     else { 
      outputStream.append(lenght+"\n"); 
      outputStream.append("Error"); 
     } 

    } 
+3

Для лучшей помощи раньше, опубликовать [SSCCE] (http://sscce.org/). Как бы то ни было, этот вопрос не имеет для меня никакого смысла. –

+0

Можете ли вы опубликовать код, в котором вы конвертируете String в ArrayList? Вероятно, это проблема. – elevine

ответ

0
stream = inputStream.getText().toString(); 
    key = Integer.parseInt(inputKey.getText().toString()); 

    List<String> arrayList = new ArrayList<String>(); 
    for (String x : stream.split(" ")) arrayList.add(x); 
    int lenght = arrayList.size(); 
    if (key < lenght) 
    { 
     outputStream.append(lenght+"\n"); 
     outputStream.append("OK"); 
    } 
    else { 
     outputStream.append(lenght+"\n"); 
     outputStream.append("Error"); 
    } 

Это мое предположение на то, что вы на самом деле хотели сделать ...

+0

Спасибо, что это было полезно. Но после этого я выбрал массив char, который был проще, чем ArrayList. – Shien

0

Размер и длина разные вещи.

Вы пытаетесь получить размер, если хотите длину.

Используйте arrayList[0].length() вместо вашего массиваList.size().

0

Если вы хотите, чтобы разобрать вашу строку в массиве попробовать:

List<String> arrayList = Arrays.asList(stream.split(",")); 

(этот пример предполагает, что текст представляет собой разделенный запятыми список)

0

Arrays.asList() ожидает массив как параметр Я не просто строка , Строка как массив String, в размере 1 Вот почему ваш список всегда размер 1. Если вы хотите, чтобы хранить слова вашего использования Струнный:

Arrays.asList(stream.split(" ")); //Don't use replace method anymore