zoukankan      html  css  js  c++  java
  • java语言程序设计 **10.25 第十章练习题 string类中split函数实现

    **10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分开的字串构成的。但是,这个分隔符是不返回的。实现下面的新方法,方法返回字符串数组,这个数组由匹配字符分隔开的字串构成,字串也包括匹配字符。

    public static String[] split(String s,String regex)

    例如,split("ab#12#453","#")会返回ab、#、12、#和453构成的String数组,而split("a?b?gf#e","[?#]")会返回a、?、b、?、gf、#和e构成的字符串数组。

    //package example4;
    import java.io.*;
    import java.util.*;
    import java.util.regex.*;
    public class ex5 {
    
        public static String[] split(String s,String regex) {
            ArrayList<String> matchList = new ArrayList<String>();
            Pattern pat = Pattern.compile(regex);  
            Matcher mat = pat.matcher(s);
            int index = 0;
            while(mat.find()) {
                    String match = s.subSequence(index, mat.start()).toString();
                    matchList.add(match);
                    String match2 = s.subSequence(mat.start(),mat.end()).toString();
                    matchList.add(match2);
                    index = mat.end();
            }
            String match = s.subSequence(index,s.length()).toString();
            matchList.add(match);
            
            int resultSize = matchList.size();
            while (resultSize > 0 && matchList.get(resultSize-1).equals(""))
                resultSize--;
            String[] result = new String[resultSize];
            return matchList.subList(0, resultSize).toArray(result);
            }
        public static void main(String[] args) {
            String[] ans=split("ab#123#453","#");
            System.out.println("模式串为“ab#123#453”,匹配串为“#”的匹配结果string数组为:");
            for(int i=0;i<ans.length;i++) {
                System.out.println(ans[i]);
            }
            String[] ans2=split("a?b?gf#e","[?#]");
            System.out.println("模式串为“a?b?gf#e”,匹配串为“[?#]”的匹配结果string数组为:");
            for(int i=0;i<ans2.length;i++) {
                System.out.println(ans2[i]);
            }
        }
        
    }
  • 相关阅读:
    elementui问题汇总
    微信小程序实现微信授权登录
    微信小程序数据存储
    小程序使用第三方服务,需要中转到一个h5页面,返回到指定页面
    小程序开发,通过左上角返回到指定页面
    万恶之源-基本数据类型(list,tuple)
    基础中的基础
    mybatis_plus实现自动填充和逻辑删除
    本地端口占用解决方案
    maven定义版本以来报红解决方案
  • 原文地址:https://www.cnblogs.com/guanwen769aaaa/p/11998919.html
Copyright © 2011-2022 走看看