我很困惑,我喜欢Java中的字符串:
String str = "str \u0923 something else";
如何处理像休闲字符(不像Java特殊字符)这样的字符,我的意思是str[4]
是'\'
而不是ण
(在unicode中\u0923
= {{ 1}} unicode字符。我要求机械解决方案而不是手动。
答案 0 :(得分:2)
JLS说unicode backslash escapes将被解释为好像文件是用在那里编码的实际字符编写的。它是源代码替换,与String文字无关。
例如,这里是完全可编译的Java,其中使用unicode转义而不是引号和分号:
class test {
String a = \u0022hello world"\u003B
}
这意味着给定一个String引用,无法确定原始源文件的分配中是否包含ण
或\u0923
。
这类似于无法区分s1
和s2
分配了哪个+
:
String s1 = "hello " + "world";
String s2 = "hello world";
答案 1 :(得分:0)
尝试:
String str = "str \\u0923 something else";
它会打印出来:
str \u0923 something else
而不是
str ण something else
答案 2 :(得分:0)
Java中的char
或String
中的Backshash始终表示转义序列。如果您需要标准'\'
字符,则必须使用{{ 1}}或'\\'
。
答案 3 :(得分:0)
首先使用-str.toCharArray()将字符串转换为字符数组 然后,您可以在使用它映射哈希码后单独处理每个字符。 例如 -
String str=str\u0923;
char str[]=str.tocharArray();
for (int i = 0; i < str.length; i++)
int str=((Character) str[i]).hashCode();