You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何用循环简化长数字的字符提取及逻辑操作?

简化长数字字符串的字符提取与条件输出(Java基础实现)

问题背景

原本通过逐个定义变量提取字符串中每个字符的方式,在处理长数字时会产生大量重复代码,同时条件输出逻辑也存在冗余,需要用基础Java代码优化。

优化后的完整实现

import java.util.Scanner;

public class NumberProcessor {
    public static void main(String[] args) {
        Scanner inp = new Scanner(System.in);
        System.out.println("Enter the number");
        String num = inp.next();

        // 直接获取首尾字符与中间子串,无需逐个提取
        char firstChar = num.charAt(0);
        char lastChar = num.charAt(num.length() - 1);
        String middlePart = num.substring(1, num.length() - 1);
        String result;

        if (firstChar < '2') {
            result = "0" + middlePart + lastChar;
        } else if (firstChar > '2') {
            // 用三元运算符简化最后一位的切换逻辑
            result = "0" + middlePart + (lastChar == '0' ? "1" : "0");
        } else {
            // 补充原代码未覆盖的第一位为'2'的情况
            result = num;
        }

        System.out.print(result);
        inp.close();
    }
}

核心优化点

  • 避免重复字符提取:不用定义多个字符变量,通过charAt()直接获取首尾字符,substring()截取中间部分,适配任意长度的数字字符串。
  • 简化条件逻辑:将原代码中两个判断最后一位的分支合并,用三元运算符直接生成结果的最后一位,减少冗余代码。
  • 兼容边界情况:补充了第一位等于'2'的处理逻辑,避免出现未覆盖的分支。

基础循环提取字符示例

如果只是需要学习用循环遍历提取每个字符,参考以下代码:

import java.util.Scanner;

public class CharLoopExtract {
    public static void main(String[] args) {
        Scanner inp = new Scanner(System.in);
        System.out.println("Enter the number");
        String num = inp.next();

        // 循环遍历字符串的每个字符
        for (int i = 0; i < num.length(); i++) {
            char currentChar = num.charAt(i);
            // 这里可根据需求处理每个字符,比如存储或打印
            System.out.printf("第%d位字符:%c%n", i + 1, currentChar);
        }

        inp.close();
    }
}

内容的提问来源于stack exchange,提问作者Khadrok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:55:16