如何在java中为不区分大小写的字符值使用replace函数
我正在编写一个java程序,其中用户输入一系列单词,将句子中的每个“p”改为“b”(不区分大小写),并显示输出 我尝试使用replace函数,但它不区分大小写如何在java中为不区分大小写的字符值使用replace函数,java,Java,我正在编写一个java程序,其中用户输入一系列单词,将句子中的每个“p”改为“b”(不区分大小写),并显示输出 我尝试使用replace函数,但它不区分大小写 String result = s.replace('p', 'b'); 我希望输出boliticians溴化,但实际输出是溴化替换仅区分大小写 没有“简单”的方法可以做到这一点:可以进行两次替换,但这会构造一个中间字符串 String result = s.replace('p', 'b').replace('P', 'B'); 我
String result = s.replace('p', 'b');
我希望输出
boliticians溴化
,但实际输出是溴化
替换
仅区分大小写
没有“简单”的方法可以做到这一点:可以进行两次替换,但这会构造一个中间字符串
String result = s.replace('p', 'b').replace('P', 'B');
我将通过迭代字符数组来实现这一点:
char[] cs = s.toCharArray();
for (int i = 0; i < cs.length; ++i) {
switch (cs[i]) {
case 'p': cs[i] = 'b'; break;
case 'P': cs[i] = 'B'; break;
}
}
String result = new String(cs);
char[]cs=s.toCharArray();
对于(int i=0;i
如果您想为非硬编码的字母编写一种方法,您可以这样做:
String method(String s, char from, char to) {
char ucFrom = Character.toUpperCase(from); // Careful with locale.
char ucTo = Character.toUpperCase(to);
char[] cs = s.toCharArray();
for (int i = 0; i < cs.length; ++i) {
if (cs[i] == from) { cs[i] = to; }
else if (cs[i] == ucFrom) { cs[i] = ucTo; }
}
return new String(cs);
}
String方法(字符串s、char-from、char-to){
char ucFrom=Character.toUpperCase(from);//注意语言环境。
char-ucTo=Character.toUpperCase(to);
char[]cs=s.toCharArray();
对于(int i=0;i
您可以使用正则表达式来完成,请参见Q&A-
或者您可以对p和p使用两次replace您可以使用
replaceAll
来代替,这样您就可以使用正则表达式:
String result = s.replaceAll("[pP]", "b");
p和p可以使用两次替换吗?