public String getPriceString() {
String priceString = "45.0";
String[] priceStringArray = priceString.split(".");
return priceStringArray.length + "";
}
为什么这给我0,零?这不应该是2?
答案 0 :(得分:6)
split()
的参数是正则表达式,dot在正则表达式中具有特殊含义(它匹配任何字符)。
尝试priceString.split("[.]");
答案 1 :(得分:2)
你需要像那样<{1}}逃脱
.
String[] priceStringArray = priceString.split("\\.");
将正则表达式作为参数,split
表示任何字符。
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#sum
答案 2 :(得分:0)
使用.
之类的反斜杠转义\\.
。对于任何事情,.
都是正则表达式元字符。您必须使用\\.
将其转义才能将其视为普通字符
String priceString = "45.0";
String[] priceStringArray = priceString.split("\\.");
答案 3 :(得分:0)
String.split
采用正则表达式模式。您传递的是.
,这意味着您想要拆分任何角色。
你可以使用"\\."
作为要分割的模式 - 但我个人会改为使用Guava:
private static final Splitter DOT_SPLITTER = Splitter.on('.');
...
(如果您还没有使用Guava,那么你会在那里找到加载的好东西。)
答案 4 :(得分:0)
您需要将.
作为\\.
转义,因为.
在正则表达式中具有特殊含义。
String priceString = "45.0";
String[] priceStringArray = priceString.split("\\.");
return priceStringArray.length + "";
答案 5 :(得分:0)
使用String[] priceStringArray = priceString.split("\\.");
您将不得不使用转义序列。