JAVA中转义字元的疑问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中转义字元的疑问相关的知识,希望对你有一定的参考价值。

参考技术A JAVA中转义字元的疑问 JAVA中转义字元2009-08-12 17:40JAVA中转义字元:
1.八进位制转义序列:\ + 1到3位5数字;范围'\000'~'\377'
\0:空字元
2.Unicode转义字元:\u + 四个十六进位制数字;0~65535
\u0000:空字元
3.特殊字元:就3个
\":双引号
\':单引号
\\:反斜线
4.控制字元:5个
\' 单引号字元
\\ 反斜杠字元
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格
点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义: ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C
其实你自己看看java的转义字元就明白了,什么样子代表什么。
C语言中转义字元的一点疑问
首先第一条:ASCII码采用的是八位二进位制位表示,而最高位要表示其二进位制值为正数(必须得),所以ASCII码国际标准是127个,即从0—2^7。正因如此,如果表示成八进位制就不会出现第四位数了,否则岂不超位了??
而第二条,就是计算机只能识别二进位制数!这是关键。而我们所说的八进位制、十进位制、十六进位制都是为了使我们更容易的去书写运算而设计的,你总不能写一串1和0去加减吧?如果你用心,在以后你还会发现十进位制、十六进位制表示的ASCII码表的。
这个问题不低啊,你能想到这个层次,表示你对计算机的学习很用心的啊。加油哦,我就是学计算机的,开始学的时候会很难理解,那是正常的,随着你学习的深入一切当初让你无法理解的问题知识都会理解的。加油哦!
java转义字元问题

System.out.printf(str ); 你用的是printf, 为java的格式化输出,所以你str里的两个%,第一个"%"表示进行格式化输出,"%"之后的内容为格式的定义,即你的定义为%。

可以看看关于格式化输出的文章

:heidian.iteye./blog/404632

如果你想打两个%,需要用
System.out.println(str);
或者
System.out.print(str);

要看网站本身的安全等级,如果仅仅在网页校验是否存在非法字元是可以绕过去的,如果在后台同样做了非法字元校验你就很难绕过去了。
针对只在网页校验后台没有校验的:
在把你想输入的任何字元都填入到有效区域,然后检视原始档,看他在校验后提交哪个form,直接在浏览器位址列输入javascript:xxxxform.submit()
good lucky ^_~
c++中转义字元的问题
#include <iostream>
using namespace std;
int main()
double a(2.3),b(3.1);
char c1='C',c2='+',c3='+';原来的那个程式这里出现了一个中文“+”
cout<<"I say:\""<<c1<<c2<<c3<<'\"';
cout<<"\t\t"<<"He says: \"C++ is very intesetring! \""<<'\n';
return 0;

C语言的转义字元疑问
转义字元中的数字都是八进位制或者是16进位制的,
如果是\后面只有1~3位数字,那么就是八进位制
如果是\x后面加1~2位数字或者a~f字母,那么就是十六进位制。
所以这里的\112中的112是八进位制数字,对应的是ASCII码为十进位制数74的字元,也就是大写字母J
C#中转义字元的定义

C#中转义字元分2中,一种是\,一种是@。转义字元 字元名称 \' 单引号 \" 双引号 \\ 反斜杠 \0 空字元 \a 警报符 \b 退格 \f 换页 \n 换行 \r 回车 \t 水平制表 \v 垂直制表 Verbatim字串 对于verbatim字串,编译 器会严格按照原样对其进行解释。也就是说,即使这个字串跨越多行,或是包含转义字元,编译器也将不予理会,即这些格式和转义符将按照原样输出。唯一例外的是引号,编译器必须将其转义,因为只有这样才能确定字串的边界。 Verbatim字串的定义语法为以@符号开始,后面紧跟包含在引号中的字串。例如:string sample = @"Hello";string sample = @"Hello\orld"; 生成Hello\orld以下是一个实用的示例:string sample=@"C:\My Documents\sample.txt";结果为:C:\My Documents\sample.txt,如同语句:string sample="C:\\My Documents\\sample.txt" 若想在Verbatim字串内使用引号,必须使用附加的引号组将其转义。例如,生成字串"Hi"的程式码如下:String s=@" " "Hi"""; 注意:两边都有3个引号上述程式码将生成下列字串:"Hi"参考连结:

linux中转义字元“\”的含义
转义是 告诉shell不必特殊解释这个字元,只把它当成字面上的意思.
但在一些命令和软体包里,比如说echo和sed,转义一个字元可能会引起一个相反的效果--因为它们可能触发那个字元的特殊意思. 他们是一些特殊的转义序列,比如\r \n等等。
Linux就是这么规定的,记住就行了。
JAVA转义字元\\
"|"在Java中是特殊字元,如果不加“\\”就按特殊含义处理,加上转义字元“\\”就说明“|”是字串而不是特殊字元。
java 转义字元的问题
Unicode转换成中文的方法:
public static String decodeUnicode(String theString) char aChar; int len = theString.length(); StringBuffer outBuffer = new StringBuffer(len); for (int x = 0; x < len;) aChar = theString.charAt(x++); if (aChar == '\\') aChar = theString.charAt(x++); if (aChar == 'u') int value = 0; for (int i = 0; i < 4; i++) aChar = theString.charAt(x++); switch (aChar) case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': value = (value << 4) + aChar - '0'; break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': value = (value << 4) + 10 + aChar - 'a'; break; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': value = (value << 4) + 10 + aChar - 'A'; break; default: throw new IllegalArgumentException( "Malformed encoding."); outBuffer.append((char) value); else if (aChar == 't') aChar = '\t'; else if (aChar == 'r') aChar = '\r'; else if (aChar == 'n') aChar = '\n'; else if (aChar == 'f') aChar = '\f'; outBuffer.append(aChar); else outBuffer.append(aChar); return outBuffer.toString();
详细可参考博文《Java中文转为unicode码,unicode转为中文》:

:hi.baidu./wangguoqingsll/item/e5d67032f2ae11cb1a9696d5

以上是关于JAVA中转义字元的疑问的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GitHub 代码搜索中转义字符? [复制]

如何在 Azure 表查询中转义字符?

如何在 Hadoop 上运行的 Cloudera Impala 的 python impyla 查询中转义字符

通过 Criteria api 在 LIKE 中转义字符

微信小程序中转义字符的处理

在查询中使用通配符在 Spark.SQL() 中转义字符