【FAQ】解决Java中,用replaceAll无法正常替换字符串的问题

问题描述

前两天在编码过程中,需要将一个接口返回的字符串中的空格去掉,但是当我用下面的方式进行替换时,结果一直替换不成功。这里记录一下解决办法。主要是解决问题的思路。

myString.replaceAll(" ", "").replaceAll("\s*", "")

解决思路

将字符串中的空格字符code point打印出来,
然后可以用 .replaceAll(String.valueOf((char) 160), "") 替换掉这个空格。
这里160是我接口返回的空格的code point

    public static void main(String[] args) {
        String text = "25.000 ₫"; //接口返回的字符串
        System.out.println(text);

        for (int i = 0; i < text.length(); i++) {
            System.out.println(text.codePointAt(i));
        }

        System.out.println(text.replaceAll(String.valueOf((char) 160), ""));
    }

可以用下面的链接查询code point对应的字符。
https://www.codetable.net/decimal/160

在这里插入图片描述

可以看到,我这里接口返回的空格不是一个常规意义上的空格,普通的空格code point是32

在这里插入图片描述

发布者:CoolQA,转转请注明出处:https://www.amwalle.com/programming/20201217-%e3%80%90faq%e3%80%91%e8%a7%a3%e5%86%b3java%e4%b8%ad%ef%bc%8c%e7%94%a8replaceall%e6%97%a0%e6%b3%95%e6%ad%a3%e5%b8%b8%e6%9b%bf%e6%8d%a2%e5%ad%97%e7%ac%a6%e4%b8%b2%e7%9a%84%e9%97%ae%e9%a2%98.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
CoolQA的头像CoolQA
上一篇 2020年11月17日 09:20
下一篇 2021年1月16日 09:11

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理