今天写一个字符串操作的程序的时候发现对“.”的操作一直有错误。
程序如下:
package demos;
import java.io.*;
public class GetFileExtName {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File file=new File("c:/uploads/1210326643009.sql");
String []a=file.getName().split("/");
for(int i=0;i
//System.out.println(a[i]);
}
String s="1210326643009.sql";
String s1[]=s.split(".");
for(int i=0;i
System.out.println(s1[i]);
}
}
}
输出结果为空。感觉是split(".");的错误。
换成split ("0");则有结果输出
121
326643
9.sql
由"9.sql"这一结果说明“.”没有被java识别为分隔符。
网上搜索了一下,几个特殊的转义符如下:
点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C
/n 换行
/r 回车
/t 制表符
/f formfeed
/b 退格
/a 响铃
/e escape(ASCII 中的escape 字符)
/007 任何八进制值(这里是,007=bell(响铃))
/x7f 任何十六进制值(这里是,007=bell)
/cC 一个控制符(这里是,ctrl +c)
// 反斜线
/” 双引号
/l 下个字符小写
/L 接着的字符均小写直到/E
/u 下个字符大写
/U 接着的字符均大写直到/E
/Q 在non-word 字符前加上/,直到/E
/E 结束/L,/E 和/Q
用“//u002E”替换可得正确结果
1210326643009
sql