[size=medium]
1. 关于正则表达式使用的。
需求是所有匹配上的字符串加上特殊的标志,这个典型的使用是在搜索里面给所有的关键字加粗,关键是忽略大小写的,所以要替换的串是不同的,举个例子,比如:
[/size]
[size=medium]
起初是想到用Matcher的replaceAll的,但是参数是死的,所以看了replaceAll的实现,然后使用了下面的代码,实际上当前匹配上的串用group可以得到:
[/size]
[size=medium]
2. 关于File的listFiles函数,这个函数如果传递的是一个文件则返回空,所以在调用之前要特别注意,判断只能传入Directory,否则肯定会抛空指针错误。我今天就是犯了这样的错误。
[/size]
[size=medium]
3. 关于BASE64编码的问题
在使用com.sun.BASE64Encoder的时候,如果使用的是encodeBuffer的静态的方法,则会在加密后加上\n\r结束符。但是它可以正确的解码。如果使用encode方法则就不会产生\n\r的分隔符。这两个方法还是有所区别。
[img]http://dl.iteye.com/upload/attachment/266856/99d5c769-fe3a-3b57-bcf5-73b4886f78f7.png[/img]
[/size]
[size=medium]
4. 关于Java File里面的renameTo方法感觉很怪异,它实现的功能和move差不多,就是把源文件移到目标路径下。但是这个在X平台下会出现一些很奇怪的问题,在windows上大家发现的问题是如果从NTFS的一个盘符里面的文件转移到FAT30盘符里面,会出错,但是X平台下基本上本路径下都会出错,所以建议大家不要使用这个API。
[/size]
[img]http://dl.iteye.com/upload/attachment/268425/15243b3e-94ad-371e-b37b-28016cd0fb82.png[/img]
1. 关于正则表达式使用的。
需求是所有匹配上的字符串加上特殊的标志,这个典型的使用是在搜索里面给所有的关键字加粗,关键是忽略大小写的,所以要替换的串是不同的,举个例子,比如:
[/size]
源串:aathread sdfdf Thread sdfdf Threadsdfdf Thread sdf THREAD THreadaa
关键字: thread
目标:aa<b>thread</b> sdfdf <b>Thread</b> sdfdf <b>Thread</b>sdfdf <b>Thread</b> sdf <b>THREAD</b> <b>THread</b>aa
[size=medium]
起初是想到用Matcher的replaceAll的,但是参数是死的,所以看了replaceAll的实现,然后使用了下面的代码,实际上当前匹配上的串用group可以得到:
[/size]
public class TestReplacement {
public static void main(String[] args) throws IOException {
Pattern p = Pattern.compile("thread",Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("aathread sdfdf Thread sdfdf Threadsdfdf Thread sdf THREAD THreadaa");
StringBuffer sb = new StringBuffer();
while (m.find()) {
System.out.println(m.group());
m.appendReplacement(sb, "<b>"+m.group()+"</b>");
}
m.appendTail(sb);
System.out.println(sb.toString());
}
}
[size=medium]
2. 关于File的listFiles函数,这个函数如果传递的是一个文件则返回空,所以在调用之前要特别注意,判断只能传入Directory,否则肯定会抛空指针错误。我今天就是犯了这样的错误。
[/size]
[size=medium]
3. 关于BASE64编码的问题
在使用com.sun.BASE64Encoder的时候,如果使用的是encodeBuffer的静态的方法,则会在加密后加上\n\r结束符。但是它可以正确的解码。如果使用encode方法则就不会产生\n\r的分隔符。这两个方法还是有所区别。
[img]http://dl.iteye.com/upload/attachment/266856/99d5c769-fe3a-3b57-bcf5-73b4886f78f7.png[/img]
[/size]
[size=medium]
4. 关于Java File里面的renameTo方法感觉很怪异,它实现的功能和move差不多,就是把源文件移到目标路径下。但是这个在X平台下会出现一些很奇怪的问题,在windows上大家发现的问题是如果从NTFS的一个盘符里面的文件转移到FAT30盘符里面,会出错,但是X平台下基本上本路径下都会出错,所以建议大家不要使用这个API。
[/size]
[img]http://dl.iteye.com/upload/attachment/268425/15243b3e-94ad-371e-b37b-28016cd0fb82.png[/img]