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

目录

  • 1.前导0
    • 1.1 需要前导0
    • 1.2 不需要前导0
  • 2.后导0
    • 2.1 需要后导0
    • 2.2 不需要后导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;
}

运行结果:
解析常见前导0与后导0操作(可直接调用)_第1张图片

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;
    }

运行结果:
解析常见前导0与后导0操作(可直接调用)_第2张图片
相关推荐:解析常见的几种数位操作

你可能感兴趣的:(java,算法与数据结构,算法)