-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"));   
}

別の方法では、これを取得するには、行ではなく1つの文字列のみをリストする方法を教えてください。

編集:

Vineet Vermaあなたのコードは素晴らしいです、しかしそれは私に素晴らしい文字列を手に入れます、そして私はこの中の文字列のインデックスを知り、後でそれらを置き換える必要があります、そして私はそれを1つの文字列だけで終わらせることができません。

私がこれを使用した場合、それはまだ機能していません:

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

System.out.println(temp);

取得:[Ljava.lang.String; @ 6ef53890

Wihtin for I get 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から文字列を取得する方法がわかりません。

4

2 に答える 2

0

必要なのは単語の境界で分割することです。単純なケースには、以下のサンプルコードを使用できます(これは単なるサンプルであり、正確ではない可能性があります。ニーズを満たすより具体的な正規表現については、このチュートリアルをお読みください)。

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

注:単語の境界は言語固有であり、本当にi18nセーフ分割が必要な場合は、i18nライブラリを使用する必要があります。

グーグルで「単語の境界で分割する」を検索します。

于 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 に答える