Java String类中的replace方法替代冒号时的问题

来源:互联网 发布:微擎 ecshop 数据同步 编辑:程序博客网 时间:2024/05/29 04:35

方法原型

public String replace(char oldChar, char newChar)

返回一个新的字符串,通过newChar替换词字符串中出现的所有oldChar得到的

参数

oldChar - 原字符
newChar - 新字符

返回

一个从此字符串牌神的字符串,它将字符串中的所有oldChar替代为newChar。
运行如下代码时

// 示例1public class InfoDemo{    public static void main(String[] args)     {        String info="小白:男:总裁|小黑:男:经理|小小:女:财政部长 ";        System.out.println(info.replace(":","->"));    }}

运行结果是
示例1运行结果

并没有量“:”替换为“->”,这是为什么呢?
经过仔细观察会发现,示例1中的

System.out.println(info.replace(":","->"));

冒号(:)是英文输入法输入的冒号,而不是信息

String info="小白:男:总裁|小黑:男:经理|小小:女:财政部长 ";

中的中文输入法输入的冒号(:),所以替换不成功。将示例1代码更改为示例2,如下图,就可以替代所有的中文输入法下的冒号(:)

// 示例2public class InfoDemo{    public static void main(String[] args)     {        String info="小白:男:总裁|小黑:男:经理|小小:女:财政部长 ";        System.out.println(info.replace(":","->"));    }}

运行结果如图
示例2运行结果

0 0