今天工作的时候,遇到了奇怪的问题。 关于转义和替换字符串。 最后解决了。 特别总结
我要下去了。
德谟,
packagecom.westward; public classDemo {/*** 1.用' a1b'.ab替换字符串' a b '时是制表符而不是空格。
* 2.用" a2b "取代字符串" atb "。
*/
publicstaticvoidmain (字符串[ ] args ) {//todo auto-generated method stub
字符串1=' aTB ';
system.out.println (' string1=' string1);
字符串字符串2=' a\ TB ';
system.out.println (' string2=' string2);
system.out.println(-----------转换开始----------- ) );
string1=string1.replaceall((t )、)1);
string2=string2. replace all ((\ t ),)2);
system.out.println (' format : string1=' string1);
system.out.println (' format : string2=' string2);
}
}
output:
string1=ab
string2=atb
---------开始转换-------------------------------------------。
格式: string1=a1b
格式: string2=a2b
总结:
java语言,字符串中的反斜杠是转义字符的意思,不是反斜杠本身。 所以要打印反斜杠本身,必须\。 前面的是转义字符,后面的转义字符转义到反斜杠本身有点绕圈子。
需要特别注意的是,如果在控制台上打印字符串(例如: xyztxxx ),则必须敏感地意识到代码中的字符串应该是xyztxxx,而不是保持打印状态。 同样,如果从控制台输出的字符串为xyzxxx,(中间为制表符),则代码中的字符串必须为xyztxxx或xyzxxx。
请注意上面的demo。 如果需要将字符串的一个部分替换为另一个部分,则使用String中名为replaceAll ()的方法。 此方法的第一个参数是正则表达式。 这里需要注意:
在java中,是转义字符,在正则表达式(正则表达式本身也相当于语言,不仅在java中,而且在其他语言中)中也是转义字符。 在正则表达式中,t表示选项卡。 要在java中表示此正则表达式的选项卡,必须将其表示为: t .如果需要表示正则表达式的t本身而不是选项卡,该怎么办? 有必要这样表达。 \\t .其实,它被翻译成正则。 t,第一个反斜杠退出第二个,第三个反斜杠退出第四个。 在正则表达式中,t第一个反斜杠将第二个反斜杠转义为反斜杠本身。 原理与java语言相同。