从行字符串中获取字符串,从java中的ArrayList获取

时间:2012-11-07 22:35:37

标签: java arraylist

我有一个ArrayList:

private static ArrayList<String> lista;

static void fileReading() {

inp = new LineNumberReader(new BufferedReader(new InputStreamReader(new FileInputStream(inFileNev), "ISO8859-1")));

            String sor;
            while ((sor = inp.readLine()) != null) {

               lista.add(sor);
               lista.add(System.getProperty("line.separator"));
}

我需要来自此的字符串,而不是整行(如“pakcage”和“asd;”)。 我试过这些,但没有一个有效:

String[] temp=null;
for(String s : lista) {
   temp = s.split("\\W+"); 
} 
System.out.println(temp);

我得到:[Ljava.lang.String; @ 6ef53890 如果我写的println在for中我得到的相同,只是更多。

如果我使用它:

   String str ="" ;
    for(int i=0; i<lista.size(); i++){
     str+=lista.get(i)+" ";

  String[] temp = new String[str.length()];
  for(int i=0; i < str.length(); i++) {
       temp[i]=str.valueOf(i);
       System.out.println(temp[i]);         
  }

我只得到数字,并且无法弄清楚如何从str获取字符串。 我需要知道字符串索引,并在以后替换它们。

1 个答案:

答案 0 :(得分:0)

在这个例子中

String[] temp=null;
for(String s : lista) {
    temp = s.split("\\W+"); 
} 
System.out.println(temp);

尝试打印对象将导致调用其toString()方法。实际上,您不是打印任何String值,而是打印Strings的数组,它是一个对象。

在您的第二个代码段str.valueOf(i);中返回“ int 参数的字符串表示形式。”

您可能想要做的是

  1. 将您的元素拆分为某个表格,就像您在此处temp = s.split("\\W+");
  2. 一样
  3. 然后使用foreach
  4. 遍历数组

    看起来像

    for (String s : yourStringArray) {
        System.out.println(s);
    }
    

    希望这有助于......差不多一年之后;)