public String getPriceString() {
String priceString = "45.0";
String[] priceStringArray = priceString.split(".");
return priceStringArray.length + "";
}
なぜこれは私に0、ゼロを与えるのですか?これは2ではないですか?
への引数split()
は正規表現であり、ドットは正規表現で特別な意味を持ちます (任意の文字に一致します)。
試すpriceString.split("[.]");
そのまま逃げれば.
いい
String[] priceStringArray = priceString.split("\\.");
split
パラメータとして正規表現を取り、.
任意の文字を意味します。
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#sum
.
のようにバックスラッシュでエスケープします\\.
。何か.
の正規表現のメタ文字です。通常の文字\\.
として扱うには、エスケープする必要があります
String priceString = "45.0";
String[] priceStringArray = priceString.split("\\.");
String.split
正規表現パターンを取ります。任意の文字.
で分割することを意味します。
分割するパターンとして使用できますが、個人的には代わりにGuavaを使用します。"\\."
private static final Splitter DOT_SPLITTER = Splitter.on('.');
...
(Guava をまだ使用していない場合は、そこにたくさんの機能があります。)
使用String[] priceStringArray = priceString.split("\\.");
エスケープ シーケンスを使用する必要があります。
正規表現では特別な意味があるため、エスケープ.
する必要があります。\\.
.
String priceString = "45.0";
String[] priceStringArray = priceString.split("\\.");
return priceStringArray.length + "";