我想从我的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获取字符串。
答案 0 :(得分:0)
您需要的是在字边界处分割。对于简单的情况,您可以使用以下示例代码(这只是一个示例,可能不准确。请阅读this tutorial以获取满足您需求的更具体的正则表达式。)
String [] words = line.split("\\W+");
注意:字边界是特定于语言的,如果您确实需要i18n安全分割,则需要使用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;
}
如果我正确理解您的查询,那么这就是解决方案