在第一个“$”之前获取字符串

时间:2014-06-11 10:19:05

标签: java

我想在第一个$之前获取字符串。我使用了下面的代码,但它没有给我所需的输出,即name

String sInputFld = "name$name22";

String sOutputFld = sInputFld .split("$")[0];

4 个答案:

答案 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)

对{String}使用indexOfsubstring的组合。类似的东西会做:

String s = input.substring(0, input.indexOf('$'));

答案 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中的特殊字符。它意味着字符串的结尾。所以你必须逃脱它。