gpt4 book ai didi

java - 如何实现 Luhn 算法?

转载 作者:搜寻专家 更新时间:2023-11-01 03:58:53 24 4
gpt4 key购买 nike

我正在尝试创建一个程序来基于 luhn 算法验证 10 到 12 位长数字序列,但我的程序一直告诉我每个数字都是无效的,即使它们不是。

这个数字应该是有效的,但我的代码不这么认为:8112189876

这个数字应该是无效的,我的程序同意这一点,因为它认为每个数字都是无效的:8112189875

这是我的代码:

static void luhn(){
System.out.print("Enter number to validate:\n");
String pnr = input.nextLine();
int length = pnr.length();
int sum = 0;
for (int i = 1, pos = length - 1; i < 10; i++, pos--){
char tmp = pnr.charAt(pos);
int num = tmp - 0
int product;
if (i % 2 != 0){
product = num * 1;
}
else{
product = num * 2;
}
if (product > 9)
product -= 9;
sum+= product;
boolean valid = (sum % 10 == 0);
if (valid){
System.out.print("Valid!\r");
}
else{
System.out.print("Invalid!");
}
}
}

最佳答案

使用 org.apache.commons.validator.routines.checkdigit.LuhnCheckDigit.LUHN_CHECK_DIGIT.isValid(number)

Maven 依赖:

<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.5.1</version>
</dependency>

关于java - 如何实现 Luhn 算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26383926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com