字符串中的特殊 Java 个字符

Special Java characters in String

我很困惑,我在 Java 中有这样的字符串:

String str = "str \u0923 something else";

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

尝试:

String str = "str \u0923 something else";

它会打印出:

str \u0923 something else

而不是

str ण something else

JLS 表示 unicode backslash escapes 将被解释为好像文件是用编码在那里的实际字符写入的。这是源代码级别的替换,与字符串文字无关。

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

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

这意味着给定一个字符串引用,无法确定原始源文件在其赋值中是否包含 \u0923

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

String s1 = "hello " + "world";
String s2 = "hello world";

chars 或 Strings 中的 Backshash Java 总是代表转义序列。 如果你想要标准 '\'字符,你必须使用'\'"\".

首先使用- str.toCharArray() 将字符串转换为字符数组 那么在用每个字符映射哈希码后,您将能够单独处理每个字符。 例如-

String str=str\u0923;
char str[]=str.tocharArray();
for (int i = 0; i < str.length; i++) 
int str=((Character) str[i]).hashCode();