• ベストアンサー

Stringの文字列をString[]配列に変換したい

お世話になります♪ たとえばこういうStringの文字列があるとします。 String s = "私は Javaを 勉強 しています。"; これを下記のようなイメージでString[]配列に変換したいのですが、 {"私は","Javaを","勉強","しています。"}; 何かいい方法はないでしょうか? ヒントをください! よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • unakowa
  • ベストアンサー率38% (53/138)
回答No.1

java.util.StringTokenizerで区切り文字を半角スペースで使用して、 hasMoreTokens()をwhileで回しながらそのループ中で配列に投入してはどうですか?

saya129
質問者

お礼

サンプルを見る前にある程度自分で組むことが出来ました! ありがとうございます!

その他の回答 (4)

  • tachiwa
  • ベストアンサー率34% (25/73)
回答No.5

ご参考までに import java.util.*; class Hello022 { public static void main(String args[]){ String[] str = new String[4]; int i = 0; String s = "私は Javaを 勉強 しています。"; StringTokenizer st = new StringTokenizer(s ," "); while(st.hasMoreTokens()){ str[i] = st.nextToken(); i++; } for(int j=0;j<str.length;j++){ System.out.println(str[j]); } } }

saya129
質問者

お礼

完璧なサンプルありがとうございます!

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.4

substringを使うならば少し苦しいですが class Bunkatsu { public static void main(String[] args){ int i=0; int j=0; int k[]=new int[10]; String str="私は Javaを 勉強 しています。"; String sstr[]=new String[10]; k[i]=0; i=i+1; str=" "+str; while(j<str.length()){ if(str.substring(j,j+1).equals(" ")||str.substring(j,j+1).equals("。")){ k[i]=j+1; i=i+1; } j=j+1; } for(int l=0;l<i-1;l++){ sstr[l]=str.substring(k[l],k[l+1]); System.out.println(sstr[l]); } } }

saya129
質問者

お礼

こういうやり方もあるんですね! ありがとうございます!

回答No.3

Java1.4以降かつ正規表現が理解できるならStringクラスのsplitメソッドでもOK。

saya129
質問者

お礼

正規表現はまだ理解できていません・・・。 今度挑戦してみます! ありがとうございました!

  • u_witch
  • ベストアンサー率34% (26/76)
回答No.2

区切りたい文字と文字の間に半角スペースが入るというのを前提に記述します。 クラスとしては、StringTokenizerクラスが使えると思います。 サンプルソースとしては… StringTokenizer strToken = new StringTokenizer( "私は Javaを 勉強 しています。", " " ); int intMax = strToken.countTokens(); String[] strPara = new String[ intMax ]; for( int i = 0; i < intMax; i++ ) { strPara[ i ] = strToken.nextToken(); } これで、 strPara[ 0 ] = "私は" strPara[ 1 ] = "Javaを" strPara[ 2 ] = "勉強" strPara[ 3 ] = "しています。" が、格納されると思います。 ※他に良い案があるかもしれませんが…(汗)

saya129
質問者

お礼

わかりやすいサンプルありがとうございました!

関連するQ&A