作用:测试字符串内的模式、识别/替换文本、提取文本
包名:java.util.regex、Apche Commens Lang.Guava等
import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** @author: Shism* @Date: Created in 15:42 2023/3/17* @Description:**/
public class PatternTest {public static final String Regex = "\\bdog\\b";// \b为边界public static final String msg = "dog dog dogg dog1 dog";public static void main(String[] args) {//将regex转化为Pattern对象,编译patternPattern pattern = java.util.regex.Pattern.compile(Regex);Matcher matcher = pattern.matcher(msg);//查找while(matcher.find()){System.out.print(matcher.start()+" ");System.out.println(matcher.end());}//替换System.out.println(matcher.replaceAll("cat"));}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;/*** @author: Shism* @Date: Created in 16:20 2023/3/17* @Description:**/
public class String2List {public static void main(String[] args) {List list = new ArrayList<>();list.add("1");list.add("2");list.add("3");//集合转字符串String str = String.join(",",list);System.out.println(str);//字符串转集合,切分后初始化为集合List str2list = Arrays.asList(str.split(","));//遍历集合for (String s: str2list){System.out.println(s);}}
}
作用及意思:对用户数据进行转义处理,防止SQL注入等攻击行为
import org.apache.commons.text.StringEscapeUtils;
/*** @author: Shism* @Date: Created in 16:32 2023/3/17* @Description:**/
public class EscapeString {public static void main(String[] args) {String str = "cat say:\"Stop\"";//转义System.out.println("escape:"+StringEscapeUtils.escapeJava(str));System.out.println("unescape:"+StringEscapeUtils.unescapeJava(str));}
}
输入输出流的使用,常用于OJ平台的代码流读入
import org.apache.commons.io.Charsets;
import org.apache.commons.io.IOUtils;import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;/*** @author: Shism* @Date: Created in 15:42 2023/3/20* @Description:**/
public class String2InputStream {public static void main(String[] args) {List names = new ArrayList<>();names.add("a");names.add("b");names.add("c");names.add("d");String str = String.join(",", names);//str转为输入流InputStream in = IOUtils.toInputStream(str, Charsets.toCharset("UTF-8"));//设置为系统System.setIn(in);//从系统输入流定向到扫描器Scanner sc = new Scanner(System.in);//使用“,”为分隔符sc.useDelimiter(",");while(sc.hasNext()){System.out.println(sc.next());}}
}