-2

私はJavaで非常に基本的なタスクを持っています:

文字列を文字 (char ではなく String 型) に分割します。

私が最初に使用したのString.split("123")は、末尾の空白「{,1,2,3}」を返すものでした。配列を別のものに変換するか、新しい配列を作成して最初のスペースを削除する必要があるため、適切なアプローチを検索し、多くのバリアントを見つけましたが、ループの使用、変換、変換のように、それらはすべてかさばります。

では、文字列を文字列のコレクションに変換するにはどうすればよいでしょうか。

  • StringBuffers を使用して?
  • ArrayList に変換しますか?
  • 先頭の空のスペースなしで、分割を使用して新しい配列を作成しますか?
  • トークナイザーを使用しますか?

簡潔で明確なアプローチはどのように見えますか?

今のところ私のお気に入りは

    String[] singleLetters = string.split("");
    singleLetters = Arrays.copyOfRange(singleLetters, 1, singleLetters.length);

より良いアプローチは次のとおりです。

    String[] singleLetters = string.split("(?!^)")  
4

5 に答える 5

2

これはどう:

public static String[] splitMyString(String input)
  {
  final String[] array = new String[input.length()];
  for (int i = 0; i < input.length(); ++i)
     array[i] = input.substring(i, i+1);
  return array;
  }
于 2013-02-03T13:56:15.520 に答える
2

なぜあなたはlenth1のsubString()を使わないのですか-それはあなたStringに個々の文字を与えるでしょう

これが簡単なデモコードです

 public void subStrChar{
    String s = "helo";
    for(int i=0;i<s.length();i++){        
        System.out.println(" " + s.substring(i, i+1));
     }
    }
于 2013-02-03T13:54:21.260 に答える
1

あなたString.toCharArray()の問題を解決しますか?

于 2013-02-03T13:49:31.357 に答える
1

多分グアバのスプリッターを見てください。

于 2013-02-03T13:55:03.993 に答える
0
str.split("(?!^)")

正規表現は先頭の空の文字列が一致しないようにするため、結果には先頭の空の文字列は含まれません。このソリューションは、仮定なしで機能します。

于 2013-02-03T14:09:27.143 に答える