-4

我想从我的 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(temp);

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

我得到了很多:[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 获取字符串。

4

2 回答 2

0

您需要的是在单词边界处拆分。您可以将以下示例代码用于简单案例(这只是一个示例,可能并不准确。阅读本教程以获取满足您需求的更具体的正则表达式)。

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

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

在 google 中搜索“在单词边界处分割”。

于 2012-11-07T19:22:19.100 回答
0

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

在另一种方法

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

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

于 2012-11-07T19:56:51.267 回答