2012-11-07 37 views
-4

我想从我的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")); 
} 

在另一种方法如何得到这个只列出一个字符串,而不是行?

编辑:

维尼特维尔马你的代码是伟大的,但它得到了我很大的字符串,我需要知道在这个字符串的指标,后来取代他们,我不能把它做只有一个字符串。

它仍然没有工作,如果我用这个:

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

的System.out.println(临时);

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

Wihtin的,因为我得到很多:[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中获取字符串。

+0

什么是一条线的“元素”? –

+1

该行是一个字符串...我不明白这个问题。 – mre

+0

你想通过单词循环逐行吗? –

回答

0

使用此代码对你的问题:

中的其他方法

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

如果我正确理解您的查询,然后这是解决方案

0

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

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

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

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

+0

例如文件开始:“package asd;” 我需要字符串“包”和“asd”;而不是整条线。 谢谢你的教程,我知道split()方法,但我不能正确使用它,它不会工作。 有没有人有这样的代码? – user1796823

+0

谢谢,我编辑了我的问题,因为它仍然不起作用 – user1796823

相关问题