String中的特殊Java字符

时间:2015-03-20 19:47:37

标签: java string unicode character

我很困惑,我喜欢Java中的字符串:

String str = "str \u0923 something else";

如何处理像休闲字符(不像Java特殊字符)这样的字符,我的意思是str[4]'\'而不是(在unicode中\u0923 = {{ 1}} unicode字符。我要求机械解决方案而不是手动。

4 个答案:

答案 0 :(得分:2)

JLS说unicode backslash escapes将被解释为好像文件是用在那里编码的实际字符编写的。它是源代码替换,与String文字无关。

例如,这里是完全可编译的Java,其中使用unicode转义而不是引号和分号:

class test {
    String a = \u0022hello world"\u003B
}

这意味着给定一个String引用,无法确定原始源文件的分配中是否包含\u0923

这类似于无法区分s1s2分配了哪个+

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中的charString中的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();