【java/字符串】取固定長度的字符串,不足左補字符或右補字符的兩函數


【需求】

取固定長度的字符串,不足左補字符或右補字符

如字符串為hello,固定長度為8,左補方案為***hello,右補方案為hello***

【實現代碼】

package com.hy.lab;

import java.util.Arrays;

public class StringUtil {
    /**
     * 返回固定長度的字符串,多了截取,少了左補字符
     * @param raw
     * @param fixSize
     * @param prefix
     * @return
     */
    public static String leftAdd(String raw,int fixSize,char prefix){
        int n=raw.length();

        if(n==fixSize){
            return raw;
        }else if(n>fixSize){
            return raw.substring(0,fixSize);
        }

        char[] arr= new char[fixSize];
        Arrays.fill(arr,prefix);

        for(int i=fixSize-n;i<fixSize;i++){
            arr[i]=raw.charAt(i+n-fixSize);
        }

        return String.valueOf(arr);
    }

    /**
     * 返回固定長度的字符串,多了截取,少了右補字符
     * @param raw
     * @param fixSize
     * @param prefix
     * @return
     */
    public static String rightAdd(String raw,int fixSize,char prefix){
        int n=raw.length();

        if(n==fixSize){
            return raw;
        }else if(n>fixSize){
            return raw.substring(0,fixSize);
        }

        char[] arr= new char[fixSize];
        Arrays.fill(arr,prefix);

        for(int i=0;i<n;i++){
            arr[i]=raw.charAt(i);
        }

        return String.valueOf(arr);
    }


    public static void main(String[] args){
        System.out.println(leftAdd("Hello",8,'*'));
        System.out.println(leftAdd("a",8,'_'));
        System.out.println(leftAdd("哈哈",8,'0'));
        System.out.println(leftAdd("HelloHe",8,'*'));
        System.out.println(leftAdd("HelloHello",8,'*'));
        System.out.println(leftAdd("HelloHel",8,'*'));

        System.out.println();

        System.out.println(rightAdd("Hello",8,'*'));
        System.out.println(rightAdd("a",8,'_'));
        System.out.println(rightAdd("哈哈",8,'0'));
        System.out.println(rightAdd("HelloHe",8,'*'));
        System.out.println(rightAdd("HelloHello",8,'*'));
        System.out.println(rightAdd("HelloHel",8,'*'));
    }


}

【輸出】

***Hello
_______a
000000哈哈
*HelloHe
HelloHel
HelloHel

Hello***
a_______
哈哈000000
HelloHe*
HelloHel
HelloHel

END


免責聲明!

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



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