为什么我的角色比较不起作用?

时间:2016-01-28 16:24:30

标签: java android char ascii

以下是我创建headingString的代码:

SharedPreferences prefs = this.getSharedPreferences("com.myapp.app", Context.MODE_PRIVATE);
String headingString=prefs.getString("directions", getResources().getString(R.string.heading_default));
if (headingString.length()==0) {
   headingString=getResources().getString(R.string.heading_default);
}

这是我有问题的java代码:

Log.i("HeadingActivity", "headingString.charAt(0)==" +headingString.charAt(0));

if (headingString.charAt(0)=='§') {
Log.i("HeadingActivity", "success!");
// other code
}

我的日志只说:

I/HeadingActivity﹕ headingString.charAt(0)==§

即使字符匹配,控件也不会进入if块。

为什么这不按预期工作?

1 个答案:

答案 0 :(得分:0)

我发现了我的错误,我从strings.xml中获取了headingString,它使用了utf-8。方法charAt(index)返回ASCII值的整数。由于ASCII和utf-8值不是同一个值,因此我的if子句并没有这样做。