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 + "";