正则:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
用javautil包就好
1.find()找匹配的位置
2.lookingat()部分匹配
3.matches()完全匹配
4.appendReplacement全部替代
5.replaceAll全部替代
转义:
import org.apache.commons.lang3.StringEscapeUtils;
用apache的包
StringEscapeUtils.escapeJava
StringEscapeUtils.unescapeJava
字符列表拼接和拆分、驼峰命名:
import com.google.common.base.CaseFormat;
import com.google.common.base.Splitter;
import com.google.common.collect.Lists;
用google的包
Lists.newArrayList 直接初始化list
Splitter.on(’,’)
.trimResults()
.omitEmptyStrings()
.split(“123,321, abc”);
拆分字符串,忽略空,以及实现trim
String s1 = “CONSTANT_NAME”;
String s2 = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, s1);
转成正确的驼峰命名
输入流的模拟:从文件读oj输入:
import org.apache.commons.io.Charsets;
import org.apache.commons.io.IOUtils;
import java.io.InputStream;
import java.util.linkedList;
import java.util.List;
import java.util.Scanner;
public class String2InputStream {
public static void main(String[] args) {
//构造字符串列表
List names = new linkedList();
names.add("Xiaohong");
names.add("Xiaoming");
names.add("Daming");
names.add("Xiaohei");
//合并为一个字符串,以逗号相连
String nameStr = String.join(",",names);
//将字符串作为默认的输入流
InputStream in = IOUtils.toInputStream(nameStr, Charsets.toCharset("UTF-8"));
//重置系统的输入流
System.setIn(in);
//模拟键盘输入 这也是OJ平台测试用例输入的原理
//此处也可以换成一个文件输入流
Scanner sc=new Scanner(System.in);
sc.useDelimiter(",");
while(sc.hasNext())
{
System.out.println(sc.next());
}
}
}
输入流,分隔符,hasnext()
列表转字符串:
import org.apache.commons.lang3.StringUtils;
StringUtils.join(names, “,”)比String.join(",", names);更强悍



