字符串中的特殊Java字符
我很困惑,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
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”
是,但是如何自动添加反斜杠呢?