如何从ArrayList获取每个String

时间:2012-11-07 19:14:53

标签: java loops 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"));   
}

在另一种方法中,我如何才能只列出一个字符串而不是该行?

编辑:

Vineet Verma你的代码很棒,但它给我一个很棒的字符串,我需要知道其中的字符串索引,以后替换它们,我只能用一个字符串来完成它。

如果我使用它,它仍然无法正常工作:

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

的System.out.println(临时);

我得到:[Ljava.lang.String; @ 6ef53890

Wihtin for for for I get many many:[Ljava.lang.String; @ 6ef53890

如果我使用它:

   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获取字符串。

2 个答案:

答案 0 :(得分:0)

您需要的是在字边界处分割。对于简单的情况,您可以使用以下示例代码(这只是一个示例,可能不准确。请阅读this tutorial以获取满足您需求的更具体的正则表达式。)

String [] words = line.split("\\W+");

注意:字边界是特定于语言的,如果您确实需要i18​​n安全分割,则需要使用i18n库。

在Google中搜索“在字界处分割”。

答案 1 :(得分:0)

使用此代码解决您的问题:

在另一种方法中

public String convertToString(ArrayList<String> al)
{
String str ="" ;
for(int i=0; i<al.size;i++){str+=al.get(i)+" ";}
return str;
}

如果我正确理解您的查询,那么这就是解决方案