正則表達式_2_字符串切割


可以用正則表達式將字符串切割,有split(regex)方法將字符串切割,但是在寫正則表達式的時候需要注意格式正確,否則切割之后就什么都沒有了。

package Regex;

public class Spilt {


    public static void main(String[] args) {
        demo1();        
        
        demo2();
        
        demo3();
                
    }

    public static void demo3() {
        System.out.println("以下是用\\.對字符串'哈哈.波波.呵呵.無誤'的切割結果");
        String s2="哈哈.波波.呵呵.無誤";
        String [] arr2=s2.split("\\.");
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }
    }

    public static void demo2() {
        System.out.println("以下是用.對字符串'哈哈.波波.呵呵.無誤'的切割結果");
        String s1="哈哈.波波.呵呵.無誤";
        String [] arr1=s1.split(".");
        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i]);
        }
    }

    public static void demo1() {
        System.out.println("以下是用' '對字符串'哈哈 波波 呵呵 無誤'的切割結果");
        String s="哈哈 波波 呵呵 無誤";
        String [] arr=s.split(" ");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

}

 

 可以發現用.來切割字符串那結果什么也沒有,那是因為.代表任意字符,匹配任何字符都會切割,所以最后什么也沒有,因此如果想用.切割就必須要用轉義字符\\.這樣才能達到目的。因此如果想用的正則有重復(與語法),則需要用轉義字符

 

 

例子:有如下一個字符串"91 27 46 38 50" 寫代碼實現最終輸出結果為:"27 38 46 50 91"

package Regex;

import java.util.Arrays;

/*
 * 案例1
 * 需求:有如下一個字符串"91 27 46 38 50" 寫代碼實現最終輸出結果為:"27 38 46 50 91"
 * 思路:
 * 1將字符串切割成字符串數組
 * 2將字符串轉為等長度的int數組
 * 3將結果排序
 * 4將結果拼成字符串數組
 * 
 * 
 */
public class SplitStringAndSort {


    public static void main(String[] args) {
        String s ="91 27 46 38 50";
        String [] arr=s.split(" ");//切割字符串
        int arr1[] =new int [arr.length];//為整數數組分配相等空間
        for (int i = 0; i < arr.length; i++) { 
            arr1[i]=Integer.parseInt(arr[i]);//parseInt()方法將字符串數字轉為整形數字
        }
        Arrays.sort(arr1);//排序
        
        //對字符串進行拼接,不推薦使用字符串方法,浪費空間
        System.out.println("以下是用普通方法對字符串進行拼接");
        String str ="";
        for (int i = 0; i < arr1.length; i++) {
            if(i==arr1.length-1) {
                str=str+arr1[i];
            }else
                str=str+arr1[i]+" ";
        }
        System.out.println(str);
        
        //使用StringBuffer類,不浪費空間,只有一個內存
        System.out.println("以下是用StringBuffer類的append()方法對字符串進行拼接");
        StringBuffer sb=new StringBuffer();
        for (int i = 0; i < arr1.length; i++) {
            if (i==arr1.length-1) {
                sb.append(arr1[i]);
                
            }
            else 
                sb.append(arr1[i]+" ");
        }
        System.out.println(sb);
    }


}

 

可以發現,兩個方法結果一樣,但是方法一費內存,方法啊而不費內存。 

7

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM