替换字符串中的大小写不敏感

时间:2013-06-21 07:22:10

标签: java string replace

我有一个文件,我将该文件转换为字符串。现在每当我试图替换一些类似于' 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

6 个答案:

答案 0 :(得分:2)

使用String::replaceAllString::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是您解决问题的方法。