
文字列内の数字だけを取り出したいとおもっています。
たとえばファイル内からreadline()で読み込んだ文字列が
[0, 0] [-0.34063, 0.0756989] [-0.362579, 0.118652] [-0.36264, 0.118637]
だったならば
配列内に
{0,0,-0.34063,0.0756989,-0.362579,0.118652,-0.36264,0.118637 }
のように格納したいのですが可能なんでしょうか?
"["や空白のようなものを削除して数字だけを取り出したいのです。
現在はこのようにファイルの文字列を取得しています
FileReader fr = new FileReader(inputpath);
BufferedReader br = new BufferedReader(fr);
String read = br.readLine();
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
(1)String[] String#split()メソッドで引数に指定した正規表現により
配列に分割することができます。
今回は","、"["、"]"で区切られていますので、
",|\\[|\\]"と指定することで、データが区切れます。
(2)分割されたデータには空白が含まれているのでデータがあるものを数値に変換します。
Strig String#trim()メソッドで前後にある余計な空白を取り除くことができます。
double Double.parseDouble()メソッドで文字列をDoubleに変換できます。
(3)項目数がわからないのであれば変換されたデータをArryListに追加します。
項目数が固定であればそのままdouble型配列に格納してしまえばいいでしょう。
こんな感じでしょうか
import java.util.ArrayList;
class test{
public static void main(String args[]){
ArrayList<Double> list=new ArrayList<Double>();
double result[];
String buf="[0, 0] [-0.34063, 0.0756989] [-0.362579, 0.118652] [-0.36264, 0.118637]";
String work[]=buf.split(",|\\[|\\]"); //データを分割
double tmp;
for(String s:work){
System.out.print("<"+s+">");
s=s.trim(); //余計な空白を除去
if(s.length()>0){//最終的にデータが残ってるかチェック
tmp=Double.parseDouble(s);//数値に変換
list.add(tmp);
}
}
System.out.println();
result=new double[list.size()];//データ数分の配列を用意
for(int i=0;i<result.length;i++){
result[i]=list.get(i);
System.out.print(result[i]+",");
}
}
}
No.2
- 回答日時:
メモリ上にあるものであれば、労力を惜しまなければプログラムで通常できないことはありません。
最近、Javaさわっていないんで考え方だけ。すべてStringクラスのメソッド。
サンプルの文字列に特化しています。パターンが違う場合には自分で考えてください。
(1)"] ["を","に置き換える。
(2)" "を""に置き換える。
(3)"["を""に置き換える。
(4)"]"を""に置き換える。
(5)出来上がった文字列を","で分割する。
参考URL:http://docs.oracle.com/javase/jp/1.5.0/api/java/ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jspでの二次元配列
-
サーブレットで複数値の受取り
-
JSPのcharAt()について
-
配列で、値の入っている要素数...
-
System.err. printlnとSystem.o...
-
InputStream.read()でタイムア...
-
VBSエラー"オブジェクト型の変...
-
変数を動的に作るには?
-
javaのコンパイルエラーについ...
-
パソコンキーボードで時分秒を...
-
JSPやサーブレットでSystem.out...
-
JavaScriptの変数をjavaのメソ...
-
「配列定数は、イニシャライザ...
-
javaです
-
JButton-背景の透明化
-
VBで作った乱数を一度も重複さ...
-
C#で、あるクラスのメンバーす...
-
int型のゼロ埋め
-
createImage()を使い コンパイル
-
プログラミングの問題です。大...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[Ljava.lang.Stringってなんですか
-
Javaで文字と数字が混ざったも...
-
この警告はどうすれば?
-
配列の中に複数存在する数がい...
-
【C#】ハッシュテーブル(連想...
-
ページング
-
C#の質問
-
n番目に大きな値を探索する
-
javaでデータベース(mysql)か...
-
C#で動的配列Listの中身をListB...
-
C言語でunsigned char配列を連...
-
同じ配列またはクラスを、2回...
-
Javaで文字を漢字であるか否か...
-
ArrayListからBean配列に値をセ...
-
Java配列の問題を教えてくださ...
-
ランダムでのboolean値の与え方
-
配列で、値の入っている要素数...
-
strutsで2次元配列をやりとりす...
-
java StringとString[]の違い
-
javaでEUC-JP文字列→UTF-8への変換
おすすめ情報