public String getPriceString() {
String priceString = "45.0";
String[] priceStringArray = priceString.split(".");
return priceStringArray.length + "";
}
为什么这给我一个0,零?这不应该是2吗?
to 的参数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
采用正则表达式模式。您正在传递,.
这意味着您要拆分任何字符。
您可以将"\\."
其用作拆分模式-但就我个人而言,我会改用番石榴:
private static final Splitter DOT_SPLITTER = Splitter.on('.');
...
(如果你还没有使用 Guava,你会在那里找到很多好东西。)
您需要转义.
,\\.
因为.
在正则表达式中具有特殊含义。
String priceString = "45.0";
String[] priceStringArray = priceString.split("\\.");
return priceStringArray.length + "";
使用String[] priceStringArray = priceString.split("\\.");
您将不得不使用转义序列。