解析常见前导0与后导0操作(可直接调用)

1.前导0

1.1 需要前导0

一些题目要求我们使用前导0,例如下面那道题,对此,我们可以采用%2d来控制输出printf("%02d",count);表示不足两位的数字在数字前面添加0.
https://www.luogu.com.cn/record/49362041

1.2 不需要前导0

当然,我们也可以进行字符串操作

public static String method(String str){
	char []arr = str.toCharArray();
	String s ="";
	boolean isFirst =true;//判断是否还在前导位
	for(int i=0;i<arr.length;i++){
		if(isFirst&&arr[i]=='0'){
		}else{
			isFirst = false;
			s+=arr[i]+"";
		}
	}
	return s;
}

运行结果:
在这里插入图片描述

2.后导0

2.1 需要后导0

和1.1同理,只要控制printf("%.2f")来打印输出就好了

2.2 不需要后导0

一个double的2.0,如果想要输出2,怎么操作?

//方法1:利用数据类型转换
public static void method(double n){
	int mid = (int)n;
	if(mid == n){
		System.out.println(mid);//将double转换为int就ok
	}
}
//方法2:利用正则表达式
public static void method2(double n){
	String mid =String.valueOf(n);

	// 去掉多余的0
	mid = mid.replaceAll("0+?$", "");
	// 去掉'.'
	s = s.replaceAll("[.]$", "");

}

//方法3:利用字符串操作
public static StringBuffer method3(double n){
        String str =String.valueOf(n);
        char []arr =str.toCharArray();
        StringBuffer ans =new StringBuffer();
        boolean isEnd = true;
        for (int i = arr.length - 1; i >= 0; i--) {
            if(isEnd&&arr[i]=='0'){
            }else{
                isEnd =false;
                ans.append(arr[i]);
            }
        }
        ans.reverse();
        return ans;
    }

运行结果:
在这里插入图片描述
相关推荐:解析常见的几种数位操作

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zeeland

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值