2013年4月1日星期一java字符串处理
二季度第一天,我被易迅愚弄了,为什么我27号下单还没收到memo,而有人评论说28号就收到了呢?
早上直到了div的float属性,标准流逝垂直分布,如果浮动则会改变标准流属性。
Java字符串处理函数之:replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence就是字符串);
2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;
另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的.
如何将字符串中的"\"替换成"\\":
String msgIn;
String msgOut;
msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");
原因:
'\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" ) ;只打印出一个"\"。但是'\'也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\。
将字符串中的'/'替换成'\'的几种方式:
msgOut= msgIn.replaceAll("/", "\\\\");
msgOut= msgIn.replace("/", "\\");
msgOut= msgIn.replace('/', '\\');
JAVA正则表达式:
Java正则表达式通过java.util.regex包下的两个类:Pattern和Matcher实现的。用法如下:
1.首先引入java包:java.util.regex.*(当然,使用java.util.regex.Matcher+java.util.regex.Pattern也是一样的。)
2.具体使用如下:①通过Pattern对象构造一个模式,具体代码为(某个特例):Pattern p = Pattern.compile("[a-z]*"); ② 构造一个匹配器,Matcher m = p.matcher(str); (注意:此处str为待匹配的字符串); ③进行判断,得到结果:boolean b = m.matches() 。【说明】:关于Matcher类进行匹配操作时,它提供了三种方法,这三种方法返回值均为boolean类型:匹配成功,则返回true,否则返回false。
正则表达式中,各符号的含义如下 :
•.表示任意一个字符;
•\s表示空白字符(如:空格符、换行符、制表符、回车等);
•\S表示非空格字符;
•\d表示一个数字,相当于[0-9];
•\D表示一个非数字的字符,相当于[^0-9];
•\w表示一个单词字符,相当于[]
•\W表示一个非单词的字符,相当于[^\w];
•^表示一行的开始;
•$表示一行的结尾;
•\b表示一个单词的边界;
•\B表示一个非单词的边界;
•\G表示前一个匹配结束;
•[]表示匹配方括号内的一个字符,例如:[abc](或[a,b,c])表示字母a,b,c中的任意一个;[a-zA-Z](或[a-z,A-Z])表示a-z,A-Z中的任意一个字符;
•*表示重复0次或更多次,如a*表示匹配0个或更多个a;
•+表示重复1次或更多次,如a+表示匹配1个或多个a;
•{n}表示重复n次,如a{4}表示匹配4个a;
•{n,}表示重复n次或更多次,如a{4,}表示匹配至少4个a;
•{n,m}表示重复n到m次,如a{4,10}表示匹配4-10个a。
貌似正则表达式不能匹配中文
要坚持早睡早起,准备睡觉!
以上是 2013年4月1日星期一java字符串处理 的全部内容, 来源链接: utcz.com/z/389633.html