
文字列内の数字だけを取り出したいとおもっています。
たとえばファイル内から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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- C言語・C++・C# C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空 5 2022/12/20 15:17
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaで文字と数字が混ざったも...
-
配列について
-
String[] とVectorの使い分け
-
配列をセッションに割り当てた後で
-
配列を引数にするとき
-
C言語でunsigned char配列を連...
-
[Ljava.lang.Stringってなんですか
-
配列の中に複数存在する数がい...
-
配列数を超えてアクセスしたと...
-
コンストラクタと多重度
-
JavaのCalendarのMONTHはなぜ0...
-
初歩的な質問です(配列について)
-
コンパイルエラー”初期化されて...
-
同じ配列またはクラスを、2回...
-
【Ajax通信&Java】配列の受け取...
-
java StringとString[]の違い
-
【Java】ある数列から、素数を...
-
sqlparamaterでIN句を使いたい。
-
ファイルから多次元配列への読...
-
CSVファイルの、列だけ取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javaで文字と数字が混ざったも...
-
フローチャート
-
この警告はどうすれば?
-
[Ljava.lang.Stringってなんですか
-
配列で、値の入っている要素数...
-
C#で動的配列Listの中身をListB...
-
配列の中に複数存在する数がい...
-
セッションを使ったint型の値の...
-
【C#】ハッシュテーブル(連想...
-
javaについて
-
javaでの文字列からの数字抽出
-
配列について
-
javaで大容量テキストファイル...
-
配列数を超えてアクセスしたと...
-
【Ajax通信&Java】配列の受け取...
-
『args[]』とは?
-
ArrayListからBean配列に値をセ...
-
C言語でunsigned char配列を連...
-
strutsで2次元配列をやりとりす...
-
javamailで複数人にメールを送...
おすすめ情報