从String的开头删除空格

时间:2013-08-02 13:01:47

标签: java string

我有一个字符串:

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 个答案:

答案 0 :(得分:8)

怎么样?
str = str.trim();

(见trim()

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

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

(见replaceFirst()

答案 1 :(得分:3)

这将删除前导空格:

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

您可以使用str.trim(),但这也会删除尾随空白,如果没有问题,您的问题就不会明确。

答案 2 :(得分: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()

答案 3 :(得分:1)

trim()  

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

例如:

String s =" te st ";
s =s.trim(); //will become "te st"