字符串中的特殊Java字符

字符串中的特殊Java字符,java,string,unicode,character,Java,String,Unicode,Character,我很困惑,Java中有这样的字符串: String str = "str \u0923 something else"; 如何处理像普通字符(不像Java特殊字符)这样的字符,我的意思是str[4]是'\'而不是ण(使用unicode\u0923=ण)unicode字符。我要的是机械解决方案,不是手动解决方案。试试: String str = "str \\u0923 something else"; 它将打印出: str \u0923 something else 而不是 str ण s

我很困惑,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说,这将被解释为文件是用编码在那里的实际字符编写的。它是源代码级替换,与字符串文本无关

例如,这里有一个完全可编译的Java,其中使用unicode转义代替引号和分号:

class test {
    String a = \u0022hello world"\u003B
}
这意味着给定字符串引用,无法确定原始源文件是否包含
或其赋值中的
\u0923

这类似于无法区分
s1
s2
中的哪个被分配了
+

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

Java中的
char
s或
String
s中的反哈希始终表示转义序列。
如果需要标准
'\'
字符,必须使用
'\\'
'\\\'

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

String str=str\u0923;
char str[]=str.tocharArray();
for (int i = 0; i < str.length; i++) 
int str=((Character) str[i]).hashCode();
String str=str\u0923;
char str[]=str.tocharArray();
对于(int i=0;i
我要求的是机械解决方案而不是手动解决方案
嗯?你是在问如何避开反斜杠吗?你的问题不清楚。你想实现什么。输入是什么,输出是什么,你现在拥有的有什么问题?这是一个
字符串
文字。字符
\u0923
在com上转换堆时间。在运行时,
字符串的值为
“strण 其他内容“
。如果您想要一个“`”,请将其转义。好的,输入字符串str=“str\u0923其他内容”;输出str.charAt(0)是“s”,str.charAt(1)是“t”,str.charAt(2)是“r”,str.charAt(3)是“”,str.charAt(4)是“\”,str.charAt(5)是“u”,str.charAt(6)是“0”,str.charAt(7)是'9'等等…如果这是您真正想要的输出,那么您必须使用
“\\\”
对字符串文字中的
'\'
字符进行转义,例如:
string str=“str\\u0923 something other”
是,但是如何自动添加反斜杠呢?