以下是我创建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
块。
为什么这不按预期工作?
答案 0 :(得分:0)
我发现了我的错误,我从strings.xml中获取了headingString,它使用了utf-8。方法charAt(index)返回ASCII值的整数。由于ASCII和utf-8值不是同一个值,因此我的if子句并没有这样做。