我有一个字符串:
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("°", "");
}
答案 0 :(得分:8)
怎么样?
str = str.trim();
(见trim()
)
请注意,这将删除前导和尾随空格。如果您只想删除前导的,可以尝试
str = str.replaceFirst("^\\s+", "");
答案 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"