我有一个文件,我将该文件转换为字符串。现在每当我试图替换一些类似于' fooBar'使用小写数据,如foobar'然后它无法正常工作。
我尝试了这2个案例。
String target = "fooBar and tooohh";
target = target.replace("foobar", "");
System.out.println(target);
它给我输出fooBar and tooohh
然后我尝试了这个
String target123 = "fooBar and tooohh";
target123=target123.replace("(?i)foobar", "") ;
System.out.println(target123);
这也给了我相同的输出: - fooBar and tooohh
答案 0 :(得分:2)
使用String::replaceAll或String::replaceFirst方法和正则表达式(?i)foobar
String replaced = target.replaceAll("(?i)foobar", "");
或
String replaced = target.replaceFirst("(?i)foobar", "");
方法String::replace
不能与regex
答案 1 :(得分:1)
只需使用String.toLowerCase方法
即可因此,如果你想整个字符串小写,你可以这样做
String result = test.toLowerCase();
现在,如果您只想将fooBar设置为小写,则可以执行类似
的操作String temp = "fooBar";
String result = test.replace(temp,temp.toLowerCase());
[试图给出一个概念]
答案 2 :(得分:1)
正如其他String所说的那样,String是不可变的,所以你需要重新设置。
target = target.replace("foobar", "");
使用String.replaceAll,您可以根据需要使用正则表达式:
target = target.replaceAll("(?i)foobar", "");
如果要将所有字符串设置为小写,请使用String.toLowerCase
target = target.toLowerCase();
答案 3 :(得分:1)
您正在替换不在“fooBar and tooohh”中的字符串“foobar”。 replace是区分大小写的,所以如果你想用“”(没有)替换“fooBar”,你可以使用:
string target = "fooBar and tooohh";
target = target.replace("fooBar", "");
这将返回:
" and tooohh"
但是,你已经要求小写所有的camelcased单词,在这种情况下你会这样做:
string target = "fooBar and tooohh";
target = target.toLowerCase();
返回:
"foobar and tooohh"
答案 4 :(得分:0)
这是因为String
在java中是不可变的,所以如果你想用String
方法更改replace()
,你必须像这样重新设置你的变量:
target = target.replace("foobar", "");
答案 5 :(得分:0)
String#toLowerCase是您解决问题的方法。