文字列を改行コードごとに区切り、Vectorに格納していきたいと思っています。
例)
あ\r\nい\r\nう\r\nえ\r\nお\r\n という文字列を
「あ・い・う・え・お」と分けてVectorに格納する。
そこで、改行コードが連続してきた場合に「連続して改行コードがきた!!」ということが分かるようにVectorに格納したいと思っています。
例)
あ\r\nい\r\nう\r\nえ\r\n\r\nお\r\n という文字列が来たら、「あ・い・う・え・☆・お」のような感じで、
連続して改行コードが来たら、何か特定の文字を詰めるなど。
どなたかいい方法を教えてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
大雑把なコードですけど (^^;
改行コードですからStringTokenizerよりもBufferedReaderを使ってみました。
String fix="";
String str="あ\r\nい\r\nう\r\nえ\r\n\r\nお\r\n";
try{
BufferedReader br=new BufferedReader(new StringReader(str));
String s="";
while((s=br.readLine())!=null){
if("".equals(s)){
fix=fix+"☆";
}
else{
fix=fix+s;
}
}
}
catch(IOException e){
}
System.out.println(fix);
お礼が遅くなって申し訳ありません。
大変助かりました。。
文字列の分割はStringTokenizerだ!と決め付けていましたが、ほかにも方法があったのですね。
ありがとうございました。
No.1
- 回答日時:
問題は、改行コードが \r と \n の2文字で一つの改行を表わしている点と、StringTokenizer クラスが「連続する区切り」に対応していない点です。
したがって、StringTokenizer クラスでは、あなたのやりたいことを実現させることは困難です。自前でプログラムを書くことをおすすめします。
例えばこんな感じです。(注: 正しく動くかどうかの確認はしてません)
String str = "あ\r\nい\r\nう\r\nえ\r\n\r\nお\r\n";
String delim = "\r\n";
Vector v = new Vector();
int index1 = 0, index2;
while ((index2 = str.indexOf(delim, index1)) >= 0) {
v.add(str.substring(index1, index2));
index1 = index2 + 2; // 2 は delim の文字数。
}
改行コードはすべて \r\n であることを前提としたプログラムです。改行コードが連続しているところでは、空の文字列 "" が Vector に入ります。
あるいは、String クラスの split メソッドを使う方法も考えられます。
String str = "あ\r\nい\r\nう\r\nえ\r\n\r\nお\r\n";
String delim = "\r\n";
String[] result = str.split(delim);
// 後は、result 配列の中の要素を Vector にコピーするだけです。
お礼が遅くなって申し訳ありません。
大変助かりました。。
splitメソッドを使用するのが簡単だと思って試したのですが、そのメソッドはありませんというエラーになってしまいました。
バージョンが違うのかもしれません。
いろいろなアイデアありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
Log4jで機能毎に別ファイルへ出...
-
system.out.printが出力されない
-
Javaで改行などが出来ないのです。
-
flush()とclose()について
-
1~100までの数字を表示し、か...
-
javaコンソール出力でVT-100等...
-
1~100までの数字を表示したい
-
Log4Jではログを改行できない?
-
Webアプリなどで、エクセルを出...
-
日付と曜日が合わない
-
テキストエリアで改行する
-
Tomcatが無応答となる現象が起...
-
Message-IdをHTMLタグとみなさ...
-
うるう年
-
JavaScriptの変数をjavaのメソ...
-
DOMでパースしているXML全体の...
-
プールとスプールの違いがわか...
-
System.out.printlnの出力先
-
行列の表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
flush()とclose()について
-
Javaで改行などが出来ないのです。
-
System.out.printlnの出力先
-
Log4jで機能毎に別ファイルへ出...
-
1~100までの数字を表示し、か...
-
system.out.printが出力されない
-
1~100までの数字を表示したい
-
StringBufferで改ページ処理を...
-
switch分が機能しません。
-
javaにおけるCSV出力時の文字コ...
-
Eclipseのコンソールを常に表示...
-
Tomcatが無応答となる現象が起...
-
プールとスプールの違いがわか...
-
JavaScriptの変数をjavaのメソ...
-
一定のスペースを空けて端を揃...
-
数字文字列をパック10進数に変...
-
tomcatのstdout.logを停止したい。
-
System.out.printlnの意味がよ...
-
JAVAのServletで、画像表示につ...
おすすめ情報