实现以下2个接口(不能使用语言的基本分割组合函数(如Java的String.split, php 的explode和implode))

实现以下2个接口
不能使用语言的基本分割组合函数(如Java的String.split, php 的explode和implode)
1)字符串拆分成数组,如"ab&&2" 通过”&&“做分隔符,分割得到字符串数组[“ab”,“2”]
2)实现字符串组合, 如[“ab”,“2”]通过”&&" 分隔符,组合成字符串"ab&&2

public class Blogs1{
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
//        test01();
        test02();
    }
    //字符串拆分成数组,如"ab&&2"通过"&&"做分割符,分割得到字符串数组["ab", "2"]
    public static void test01() {
        // 输入一个字符串
        String str = sc.nextLine();
        // 定义一个字符串数组,储存分割得到的字符串
        List<String> list = new ArrayList<String>();
        // 输入的字符串的长度
        int len = str.length();
        // 把字符串拆分成字符数组
        char[] ch = str.toCharArray();
        int temp = 0;
        for (int i = 0; i < len - 1; i++) {
            // 查看是否出现分割符&&
            if (ch[i] == '&' && ch[i + 1] == '&') {
                list.add("\"" + str.substring(temp, i) + "\"");
                i += 2;
                temp = i;
            }
            // 查看是否最后出现了分割符&&没有就继续分割这个字符串
            if ((i == len - 1 || i == len - 2) && (ch[i - 1] != '&' || ch[i] != '&')) {
                list.add("\"" + str.substring(temp, len) + "\"");
            }
        }
        // 输出这个字符数组
        System.out.println(list.toString());

    }

    // 实现字符串组合,如["ab", "2"]通过"&&"分隔符,组成字符串"ab&&2"
    public static void test02() {
        // 输入这个字符串数组
        String sList = sc.nextLine();
        // System.out.println(sList);
        // 同样将这个字符串拆分成拆分成一个字符数组
        char[] ch = sList.toCharArray();
        // 定义一个字符串缓冲类,通过字符串的拼接来组合成一个新的字符串。
        StringBuffer sBuffer = new StringBuffer();
        for (int i = 2; i < sList.length() - 2; i++) {
            //字符串拼接
            sBuffer.append(ch[i]);
            //查找两个字符串的连接处 ", "
            if (i < (sList.length() - 5) && ch[i + 1] == '\"' && ch[i + 2] == ',' && ch[i + 3] == '\"') {
                sBuffer.append("&&");
                i += 3;
            }
        }
        //输出这个重新组合成的字符串
        System.out.println(sBuffer.toString());
    }
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值