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

如何从4位整数中提取单个数位 Java编程实现问题咨询

实现方案

你有两种可落地的方式可以选择:

方案一:将输入改为String类型接收

这种方式更适合密码场景,可兼容首位为0的4位密码(比如0123这类密码,用int类型接收会自动丢弃前导0,导致位数不足),拆分逻辑更直观:

import java.util.Scanner;

public class PinTest {
    public static void main(String[] args) {
        String fourDigitPin;
        int firstDigit;
        int secondDigit;
        int thirdDigit;
        int fourthDigit;
        
        Scanner keyInput = new Scanner(System.in);
        
        System.out.print("Enter your 4 digit pin number: ");
        fourDigitPin = keyInput.next();
        
        // 输入合法性校验
        if(fourDigitPin.length() != 4 || !fourDigitPin.matches("\\d{4}")) {
            System.out.println("请输入合法的4位数字密码");
            keyInput.close();
            return;
        }
        
        // char类型转对应数字需要减去字符'0'的ASCII值
        firstDigit = fourDigitPin.charAt(0) - '0';
        secondDigit = fourDigitPin.charAt(1) - '0';
        thirdDigit = fourDigitPin.charAt(2) - '0';
        fourthDigit = fourDigitPin.charAt(3) - '0';
        
        // 后续你的数学运算逻辑可以写在这里
        keyInput.close();
    }
}

方案二:保持int类型接收,用数学运算拆分

如果你的业务场景确认不会出现首位为0的4位密码,可以用取模、除法的方式直接拆分整数:

import java.util.Scanner;

public class PinTest {
    public static void main(String[] args) {
        int fourDigitPin;
        int firstDigit;
        int secondDigit;
        int thirdDigit;
        int fourthDigit;
        
        Scanner keyInput = new Scanner(System.in);
        
        System.out.print("Enter your 4 digit pin number: ");
        fourDigitPin = keyInput.nextInt();
        
        // 输入合法性校验
        if(fourDigitPin < 1000 || fourDigitPin > 9999) {
            System.out.println("请输入合法的4位数字密码");
            keyInput.close();
            return;
        }
        
        firstDigit = fourDigitPin / 1000;
        secondDigit = (fourDigitPin / 100) % 10;
        thirdDigit = (fourDigitPin / 10) % 10;
        fourthDigit = fourDigitPin % 10;
        
        // 后续你的数学运算逻辑可以写在这里
        keyInput.close();
    }
}

注意事项

你原有代码中存在变量拼写错误:thridDigit正确拼写为thirdDigit,forthDigit正确拼写为fourthDigit。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:06:05