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。

貌似正则表达式不能匹配中文

要坚持早睡早起,准备睡觉!

原文地址:https://www.cnblogs.com/doit8791/p/2994474.html