2012-03-10 118 views
-1

应用程序将TextEdit值读取为String,然后转换为ArrayList。但在转换之前,它会删除TextEdit中单词之间的空格。所以转换后我得到ArrayList大小只有1.字符串到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/)。事实上,这个问题对我来说毫无意义。 – 2012-03-10 15:50:38

+0

你可以发布你将字符串转换为ArrayList的代码吗?这可能是问题所在。 – elevine 2012-03-10 15:52:13

回答

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

感谢这是有用的。但在此之后,我选择了比ArrayList更容易的char数组。 – Shien 2012-03-21 19:41:27

0

的大小和长度是不同的东西。

您试图在需要长度时获取尺寸。

使用arrayList[0].length()而不是你的arrayList.size()。

0

如果你想你的字符串解析到一个数组的尝试:

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

(本例中期望您的文字是用英文逗号分隔)

0

Arrays.asList()期待一个数组放慢参数不只是一个字符串。一个字符串,如大小1多数民众赞成在一个String数组,为什么你的列表的大小为1的总如果你想存储你的字符串中使用的话:

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