我想在第一个$
之前获取字符串。我使用了下面的代码,但它没有给我所需的输出,即name
String sInputFld = "name$name22";
String sOutputFld = sInputFld .split("$")[0];
答案 0 :(得分:4)
您的问题是因为您的分隔符$
在split()
中使用的正则表达式中具有特殊含义。你必须逃脱它:
String sOutputFld = sInputFld .split("\\$")[0];
编辑:
但是,使用split()
仅提取第一个片段似乎无效。您可以使用substring()
和index()
:
int dollarPos = str.indexOf("$"); // here $ is not escaped because regex is not used\
if (dollarPos >= 0) {
fragment = str.substring(0, dollarPos);
}
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用此方法:
String string = "name$name22";
String[] parts = string.split("\\$");
String part1 = parts[0]; // name
String part2 = parts[1]; // name22
答案 3 :(得分:0)
将你的第二行装到
String sOutputFld = sInputFld .split("\\$")[0];
$
是regexp中的特殊字符。它意味着字符串的结尾。所以你必须逃脱它。