【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

posted @   逆火狂飙  阅读(963)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2020-03-10 【Canvas与化学】硅元素
2020-03-10 Oracle中select子句取值先于order by子句执行而导致rownum伪列未按预期取值导致的问题
2020-03-10 【Canvas与艺术】蓝波纹白底黄星徽章
2019-03-10 [JS]两个常用的取随机整数的函数
2019-03-10 【Canvas与艺术】十角大楼
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示