私はベクトル関数を使って異なる計算をするプログラムを書いていますが、私が今使っているプログラムは負の数字を区切ります。私は別のデリミタを使ってみましたが、正しいデリミタを得ることができません。文字列を正の整数と負の整数に分割する方法は?
誰かが文字列を分割するときに正と負の数字を保持する方法を知っていますか?また、小数値を保持する方法はありますか?
ArrayList<Integer> list = new ArrayList<Integer>();
String twoVectors = "a=<-1,2,-3> b=<4,-5,6>"; // vector and a and b
String[] tokens = twoVectors.split("\\D");
for (String s : tokens)
if (!s.equals(""))
list.add(Integer.parseInt(s));
System.out.println(Arrays.toString(list.toArray()));
私が取得したプログラムを実行すると、[1、2、3、4、5、6]の代わりに[する:0.45 45と0.29 29
を返す。これは、コードで返します-1,2、-3,4、-5,6]となる。すべての関数は、私は完全に正常に働いていますが、負の値を使用すると動作しません。
ご協力いただければ幸いです。
regexを使うと、簡単に ' - ?\ d'を使うことができます – ultrajohn
ここでは分割に頼ることはありませんが、整数しかなく文字列のフォーマットがうまくいけば' .split( "[^ 0-9 - ] + ")'。空の最初の要素を取り除くには、 '。^ [^ 0-9 - ] +"、 "") '最初に.replaceFirst("^[^ 0-9 - ] + " –