四、Java核心技术(进阶)-高级文本处理
创始人
2025-05-31 11:58:41

一、概念

  • 正则表达式:规则表达式,为基础科学,跨平台;
  • 集合与字符串互转:
  • 字符串转义
  • 字符串与输入流

二、正则表达式

作用:测试字符串内的模式、识别/替换文本、提取文本

包名:java.util.regex、Apche Commens Lang.Guava等

-Pattern 正则表达式的编译表示

  • compile 编译一个正则表达式为Pattern对象
  • matcher 用Pattern对象匹配一个字符串,返回匹配结果

-Matcher

  • Index Methods(位置方法) //start(),start(int group),end(),end(int group)
  • Study Methods(查找方法) //lookingAt(),find(),find(int start),matches()
  • Replacement Methods(替换方法) //replaceAll(String replacement)
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"));}
}

三、 集合与字符串互转

  • 集合转字符串:String.join()转换
  • 字符串转集合:String.split()转换
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);}}
}

 四、字符串转义

  • 转义:String escapeJava(String)函数
  • 反转义:String unescapeJava(String)函数

作用及意思:对用户数据进行转义处理,防止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());}}
}

 

相关内容

热门资讯

2025年大同靠谱旅行社怎么选... 如何选靠谱的山西旅行社?2025年最新前十名数据全揭秘 随着旅游市场的复苏,大同作为历史文化名城,吸...
美食文化可不简单,藏在市井日常... 绝不是简简单单一个“吃”所能包囊括内涵的美食文化概念真就远比之宽广许多,它可不单单只是一道道菜肴凑在...
天水市区旅游 天水,这座位于甘肃东南部的城市,宛如一颗璀璨的明珠,散发着独特的魅力。市区内丰富的历史文化遗迹与美丽...
【打卡】确山:冲口美景赛江南 确山县瓦岗镇冲口村,如一颗遗世明珠静卧于薄山湖上游的臻头河畔。淙淙河水自群山深处蜿蜒而来,终年不息地...
李现同款爱好!准备好“长枪短炮... 快看 快看👀! “北冥有鱼”原来不是传说! 近日 山东东营黄河三角洲湿地 数万只候鸟骤然腾空 搅动漫...