1

我有一个字符串:

str =" 4 3",

我只需要在“4”之前而不是在 4 和 3 之间删除空格。

这是我为得到这个而编写的代码:“f4_ 3”。但它给出了“4 _3”。

private static String getFielName(String fieldName) {
    String formattedName;

    //here i need to delete the blanks before the '4'
    formattedName = Character.isDigit(fieldName.charAt(0)) ? "f" + fieldName : fieldName;
    return formattedName.trim().replace(' ', '_').replace(":", "").replace("°", "");
}
4

4 回答 4

8

关于什么

str = str.trim();

(见trim()

请注意,这将删除前导尾随空格。如果您只想删除领先的,您可以尝试

str = str.replaceFirst("^\\s+", "");

(见replaceFirst()

于 2013-08-02T13:03:40.690 回答
3

这将删除前导空格:

str = str.replaceAll("^\\s+", "");

您可以使用str.trim(),但这也会删除尾随空格,并且您的问题并不清楚是否可以。

于 2013-08-02T13:04:31.413 回答
2

您的代码未按预期工作的原因是您正在检查第一个字符是否是数字,然后再删除前导空格trim()。你只需要稍微重新排列你的代码。

private static String getFielName(String fieldName) {
    String formattedName = fieldname.trim();
    formattedName = Character.isDigit(formattedName.charAt(0)) ? 
                                      "f" + formattedName : formattedName ;
    return formattedName.replace(' ', '_').replace(":", "").replace("°", "");
}

请注意,如果您只想删除前导空格但保留尾随空格(我怀疑您不这样做),那么您可以使用replaceFirst()而不是trim()像其他人建议的那样。

于 2013-08-02T13:10:32.250 回答
1
trim()  

将返回您的字符串,开头和结尾没有空格。

前任:

String s =" te st ";
s =s.trim(); //will become "te st"
于 2013-08-02T13:05:49.090 回答