2009-09-03 65 views
6

ここでは小さな問題があります。コンソールから文字列を文字列に変換する必要があります。例えば、string: "aabbab"この文字列をstringの配列に入れたいのですが、どうすればいいですか?文字列を1文字ずつの文字列に変換する方法

+3

それはあなたのために働いていた場合は、公式の一つとしてヨアヒムの答えを選択する必要があります。 – VonC

答えて

5

あなたはcharの配列を意味する文字列の配列によって場合:

public class Test 
{ 
    public static void main(String[] args) 
    { 
     String test = "aabbab "; 
     char[] t = test.toCharArray(); 

     for(char c : t) 
      System.out.println(c);  

     System.out.println("The end!");  
    } 
} 

ない場合は、String.split()関数は、文字列

の配列に文字列を変換することができ、それらのString.split

/* String to split. */ 
String str = "one-two-three"; 
String[] temp; 

/* delimiter */ 
String delimiter = "-"; 
/* given string will be split by the argument delimiter provided. */ 
temp = str.split(delimiter); 
/* print substrings */ 
for(int i =0; i < temp.length ; i++) 
    System.out.println(temp[i]); 
を参照してください。

Joachimによって提案されたinput.split("(?!^)")は、his answerに基づいています。

  • ?!」ゼロ幅の負の先読み
  • Anchorとしてキャレット「^」は正規表現パターンは、

いずれにも適用されている文字列の先頭と一致する(Lookaroundを参照)最初の文字ではない文字が分割されます。空の文字列は分割されず、空の配列を返します。

+1

文字列の配列ではなく、文字配列 – Chii

+0

@Chii:true、私は両方の結果を今説明しました。 'char []'と 'String []' – VonC

+0

非常に良い説明です。 – Zaki

0

あなたはのstring.Split(文字列の正規表現)を使用することができます。

String input = "aabbab"; 
String[] parts = input.split("(?!^)"); 
+1

各文字はセパレータなので、文字はデータではないので、空の配列が得られます。 –

+0

あなたは正しいです。あなたの正規表現は良いです。 –

+0

おかげでスプリットと一緒に使うことができるのは分かりませんが、スプリットされたのはなぜですか?文字列にはその文字列がありません。 – gingergeek

21
String[] result = input.split("(?!^)"); 

を、これは文字列の先頭に先行されていないすべての空の文字列に入力された文字列を分割されているん何。

+0

それはmagic.Coolのように働くおかげでみんな – gingergeek

+1

良い正規表現、+1。 – VonC

+0

私はします。 文字列テスト= "これはテストです"; それから私は String [] test2 = test.split( "(?! –

2

"aabbab" .toCharArray();を実行することを意味します。 ? charの配列を返します。あるいは、実際に結果の配列に1文字の文字列オブジェクトを含めるにはどうしますか?

15
String x = "stackoverflow"; 
String [] y = x.split("");