美文网首页
盘点些Java强大第三方库(字符串操作)

盘点些Java强大第三方库(字符串操作)

作者: 掌灬纹 | 来源:发表于2019-05-11 19:54 被阅读0次

    1.字符串与集合间的转化

    引用第三方库 Apache Commons Lang jre连接

    值得一提的自JDK1.8以后字符串集合转为字符串可已使用String类下的join()方法,但别的数据类型还是要依靠第三方库--对比JDK和第三库代码如下

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    //导用第三库包
    import org.apache.commons.lang3.StringUtils;
    
    public class String2List {
    
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<String>();
            list.add("KeNan");
            list.add("HuiYuan");
            list.add("MaoLiLan");
            list.add("AnShiTou");
            //JDK1.8
            String str = String.join(",", list);//list集合中元素按顺序拼接","连接
            System.out.println(str);
            //apache commons lang
            String str2 = StringUtils.join(list, ",");
            System.out.println(str2);
            
            ///从字符串变回ArrayList
            List<String> list2 = Arrays.asList(str.split(","));
            for (String s : list2) {
                System.out.println(s);
            }
            
            //apache commons long 有更强大的功能,支持多种类型数据
            ArrayList<Integer> list3 = new ArrayList<Integer>();
            list3.add(1);list3.add(2);list3.add(3);
            String str3 = StringUtils.join(list3, "->");
            System.out.println(str3);
           
        }
    
    }
    
    

    2.驼峰命名规范字符串

    引用第三方库Gogle Guava jre连接

    简易实现将字符串按驼峰命名规则转换,还可以在构造链表时传参初始化链表

    import java.util.ArrayList;
    import java.util.List;
    
    import com.google.common.base.CaseFormat;
    import com.google.common.base.Splitter;
    import com.google.common.collect.Lists;
    
    public class GuavaUtil {
        /**
         * 采用Gogle Guava进行字符串处理(第三方库)
         * @param args
         */
    
        public static void main(String[] args) {
            //jdk
            List<Integer> list = new ArrayList<Integer>();
            list.add(123);
            list.add(456);
            System.out.println(list);
            
            //Guava - 构造列表时可以初始化
            List<Integer> guava_list = Lists.newArrayList(123, 456);
            System.out.println(guava_list);
            
            //拆分字符串可忽略空字符串
            Iterable<String> splist = Splitter.on(',')
                    .trimResults()//拆分结果,自动除掉空串
                    .omitEmptyStrings()//除掉空白字符
                    .split("123,321,,    abc");
            System.out.println(splist);
            
            //驼峰命名转换
            String s1 = "CONSTANT_NAME";//转为constantName
            String s2 = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, s1);
            System.out.println(s1 + "  " + s2);
            
        }
    
    }
    
    

    3.字符串(文件)转为输入流的操作--OnlineJudge的实现原理

    引用第三方库Apache Commons IO jre连接

    从字符串到输入流(输入流可以定义为Scanner,这是OnlineJudge的实现原理)

    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    import java.util.Scanner;
    
    import org.apache.commons.io.Charsets;
    import org.apache.commons.io.IOUtils;
    import org.apache.commons.lang3.StringUtils;
    
    import com.google.common.collect.Lists;
    
    public class String2InputStream {
    
        public static void main(String[] args) throws IOException {
            List<Integer> list = Lists.newArrayList(1, 2, 3 ,4, 5);
            String str = StringUtils.join(list, ",");
            //System.out.println(str);
            
            //将字符串作为默认的输入流
            InputStream in = IOUtils.toInputStream(str,
                    Charsets.toCharset("UTF-8"));
            //重置系统的输入流,也就是说Scanner 不在从控制台中读数据
            //而是读取设定的输入流中的数据
            System.setIn(in);
            
            //模拟键盘输入,也是OJ平台测试用例输入的原理
            //也可以换成文件流
            Scanner sc = new Scanner(System.in);
            sc.useDelimiter(",");
            while(sc.hasNext()) {
                System.out.println(sc.next());
            }
            sc.close();
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:盘点些Java强大第三方库(字符串操作)

          本文链接:https://www.haomeiwen.com/subject/surfaqtx.html