java中的字符串replaceAll("¾")

 逍遥子 发布于 2023-02-09 10:44

我的java代码中有非常奇怪的错误,无法弄清楚出了什么问题.

假设我有这段代码:

private void test()
{
    String test1 = replace("1.25");
    String test2 = replace("1.5");
    String test3 = replace("1.75");
}

private String replace(String s)
{
     s = s.replaceAll(".25", "¼");
     s = s.replaceAll(".5", "½");
     s = s.replaceAll(".75", "¾");
     return s;
}

然后结果将是:

test1 ="¼"

test2 ="½"

test3 ="½"???????????

有人可以解释为什么test3变成"½"?

3 个回答
  • 你正在使用replaceAll(),它采用正则表达式.在regex-land中,.意思是"任何角色".replace()改为使用,它适用于文字字符串.

    2023-02-09 10:46 回答
  • 问题是正则表达式.意味着任何字符.replaceAll将正则表达式作为参数,因此您应该使用其他方法,例如replace.

    2023-02-09 10:46 回答
  • 因为replaceAll需要正则表达式.这意味着.被解释为一个通配符也相匹配7,这样.5匹配75.您可以使用正则表达式进行转义,\但请注意,这也是一个字符串,这意味着您必须转义两次:因此replaceAll("\\.5", "½")将执行您想要的操作.

    2023-02-09 10:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有