java:高级文本处理

java:高级文本处理,第1张

java:高级文本处理

正则:
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);更强悍

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5118972.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存