【发布时间】:2016-12-12 09:04:39
【问题描述】:
我需要从字符串中删除一些字符。目前我正在尝试删除''(空格)和'-'(连字符)。我尝试了两种方法。他们都在装有 Android N Beta 的 Nexus 5X 上工作。它们都不适用于搭载 Android M 的三星 Galaxy S 6。
第一种方法:
String normalizedNumber = phoneNumber.replaceAll("[ -]", "");
第二种方法:
Pattern pattern = Pattern.compile("[ -]");
String normalizedNumber = pattern.matcher(phoneNumber).replaceAll("");
这样的基本类如何给出不同的结果?我做错了什么?
证明(调试器屏幕截图,在不同的 PC 上拍摄,这就是样式不同的原因):
这里是 Nexus
【问题讨论】:
-
您确定所有设备的代码、程序流程和输入都相同吗?
-
这似乎不太可能。你能证明这正在发生吗?。
-
@SamTebbs33 与我使用桌面上的 Android Studio 在两台设备上安装它们的代码相同。相同的程序流程,只调用一次,然后我在后面放了一个断点。
-
@shmosel 即使我用断点停止调试器并手动评估几个表达式,我也会得到相同的结果(似乎这些表达式是由 Android Studio 在设备上评估的)。你需要截图才能相信我吗?
-
@shmosel 还考虑到存在与此类基本类相关的错误:stackoverflow.com/questions/16475317/… 也许这是另一个在 AOSP 中修补但在三星代码中没有修补的实例?