【问题标题】:'toString().contains()' method unable to detect '˚' (degree symbol) inside a CharSequence'toString().contains()' 方法无法在 CharSequence 中检测到 '˚'(度数符号)
【发布时间】:2017-07-23 22:25:49
【问题描述】:

我有一个CharSequence,其中包含两个˚(度)符号。

我写了一个if 语句来检测CharSequence 里面的内容,如下所示:

CharSequence name = "27°46'29.6"N 77°19'05.9"E";

if (name.toString().contains("˚") {
     Log.d("log", "˚ detected");
} else {
     Log.d("log", "˚ not detected");
}

问题是这里˚ detected应该被日志语句打印出来,但是打印出来的是˚ not detected

为什么没有检测到˚

【问题讨论】:

  • 您的调试器在调用toString() 后显示name 的值是什么?
  • 您为什么不只是为name 使用字符串?
  • 这可以编译吗?看起来您的字符串文字中有四个引号,也许这只是 SO 的降价脚本更改了一些 UTF 字符。
  • 看起来根本不是同一个字符:°˚ -> 以拼写错误关闭

标签: java android if-statement symbols charsequence


【解决方案1】:

您正在检查 2 个不同的字符,代码点 176 与 730

if (name.toString().contains("°")) {

【讨论】:

  • 如何在 MacBook Air 的键盘上制作这个符号?
  • 只需从 CharSequence 复制符号并粘贴到 contains
  • @Hugo 确实是复制或 Option + 0176
  • @Andreas ok 扩展 ASCII 然后 :)
  • "Extended ASCII"?哪一个?您的意思是 Unicode 吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
相关资源
最近更新 更多