• 关于字符串的分割问题


    1、如何快速的将一个字符串分割成一个个字符?

            Scanner sc=new Scanner(System.in);
            
            System.out.println("请输入一个字符串:");
            
            String str=sc.next();
            
            System.out.println("输入的字符串的长度为:"+str.length());
            
            char [] a=str.toCharArray();
    
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i]+"	");
            }

    2、接上面将字符串转为字节数组

            System.out.println();
            //将字符串转为字节数组
            byte[] b=str.getBytes();
            for (int i = 0; i < b.length; i++) {
                System.out.print(b[i]+"	");
            }    

    3、按照指定字符串对当前字符串进行拆分

            System.out.println();
            //按照指定字符串对当前字符串进行拆分
            String ss="床前明月光,疑是地上霜,举头望明月,低头思故乡";
            //按照,号拆分字符串为字符串数组
            String[] strs=ss.split(",");
            System.out.println("strs的数组长度为:"+strs.length);
            for (int i = 0; i < strs.length; i++) {
                System.out.println(strs[i]);
            }        

    4、获取指定字符串的指定字符的index,及获取指定字符串的指定字符的最后出现的index;

            //获取当前字符串中指定字符或字符串的位置
            //获取hello中e的索引位置
            System.out.println("hello中e的索引位置为:"+("hello").indexOf("e"));
            
            //获取当前字符串中指定字符或字符串最后一次出现的索引位置
            //获取hello中l的最后一次出现的索引位置
            System.out.println("hello中l的最后的索引位置为:"+("hello").lastIndexOf("l"));

    5、指定分割几个字符串;

            // 最多分割出3个字符串
            int maxSplit = 3;
            sourceStrArray = sourceStr.split(",", maxSplit);
            for (int i = 0; i < sourceStrArray.length; i++) {
                System.out.println(sourceStrArray[i]);
         }

    6、split 的实现直接调用的 matcher 类的 split 的方法。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。在正则表达式中有特殊的含义的字符,我们使用的时候必须进行转义,示例:

    (1)、字符"|","*","+"都得加上转义字符,前面加上"\"。

            String value = "192.168.128.33";
            // 注意要加\,要不出不来,yeah
            String[] names = value.split("\.");
            for (int i = 0; i < names.length; i++) {
                System.out.println(names[i]);
            }

          System.out.println();

             String sourceStr = "0\1\2";
             String[] sourceStrArray = sourceStr.split("\\");//按照\来分割字符串
             for (int i = 0; i < sourceStrArray.length; i++) {
                 System.out.print(sourceStrArray[i]+"	");//结果是:0    1    2
             }

    (2)、而如果是"",那么就得写成"\\", 字符串中的\就是一个\,但是字符串中要用则必须是\,所以要转成\,就需要四个;

            String sourceStr = "1,2,3";
            String replace = sourceStr.replace(",","\\");
            System.out.println(sourceStr);//结果是1,2,3
            System.out.println(replace);//结果是1\2\3

    (3)、如果一个字符串中有多个分隔符,可以用"|"作为连字符。

    比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。

            String str = "Java string-split#test";
            
            String[] split = str.split(" |-|#");
            for (int i = 0; i < split.length; i++) {
                System.out.print(split[i]+"	");//结果是:Java  string  split   test
            }
            
            System.out.println();
            System.out.println("-------------");
            
            
            String str1 = "Java string-split#test*jsp";
            
            String[] split_plus = str1.split(" |-|#|\*");//+、*、|、等符号在正则表达示中有相应的不同意义,所以在使用时要进行转义处理,所以用\*。
            for (int i = 0; i < split_plus.length; i++) {
                System.out.print(split_plus[i]+"	");//结果是:Java  string  split   test    jsp
            }
  • 相关阅读:
    【JZOJ6409】困难的图论
    学习LCT小结
    jzoj5432. 【NOIP2017提高A组集训10.28】三元组
    jzoj6367. 【NOIP2019模拟2019.9.25】工厂(factory)
    jzoj6366. 【NOIP2019模拟2019.9.25】化学(chem)
    jzoj5433. 【NOIP2017提高A组集训10.28】图
    学习拓展中国剩余定理小结
    jzoj6300. Count
    jzoj3736. 【NOI2014模拟7.11】数学题
    jzoj6276. 【noip提高组模拟1】树
  • 原文地址:https://www.cnblogs.com/xh_Blog/p/6413205.html
Copyright © 2020-2023  润新知