- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在试图找出为什么我的输出不是它应该的样子。给出的示例是
Enter a UPC (enter a blank line to quit): 036000291453 Check digit should be: 2 Check digit is: 3 UPC is not valid
Enter a UPC (enter a blank line to quit): 036000291452 Check digit should be: 2 Check digit is: 2 UPC is valid
Enter a UPC (enter a blank line to quit): 014633149077 Check digit should be: 4 Check digit is: 7 UPC is not valid
Enter a UPC (enter a blank line to quit): 014633149074 Check digit should be: 4 Check digit is: 4 UPC is valid
Enter a UPC (enter a blank line to quit): 0853911765722 ERROR! UPC MUST have exactly 12 digits
Enter a UPC (enter a blank line to quit): 085391176572 Check digit should be: 2 Check digit is: 2 UPC is valid
Enter a UPC (enter a blank line to quit): Goodbye!
获得该输出的算法是这样的:从左到右,将奇数位置的数字相加(从1开始计数),并将结果乘以3。从左到右,将偶数位置上的数字与步骤 1 中计算出的总数相加获取步骤 2 的结果并计算除以 10 后的余数(结果模 10)。如果余数不为零,则用 10 减去该余数即可得到校验位。如果余数为零,则校验位应为0。
String str1 = validinput(in);
int odd1 = odd(str1);
int even1 = even(str1);
int f = (odd1+even1)%10;
if(f != 0){
f = 10-f;
}
System.out.println(odd1);
System.out.println(even1);
System.out.println("Check digit should be: "+f);
System.out.println("Check digit is: "+str1.charAt(11));
int y = Character.getNumericValue(str1.charAt(11));
if (f == y){
System.out.println("UPC is valid");
}
else{
System.out.println("UPC is not valid");
}
}
private static String validinput(Scanner inScanner){
System.out.print("Enter a UPC (enter a blank line to quit): ");
String str = inScanner.nextLine();
while(str.length() != 12){
if (str.length() == 0){
System.out.println("Goodbye");
break;
}
else{
System.out.println("ERROR! UPC MUST have exactly 12 digits");
System.out.print("Enter a UPC (enter a blank line to quit): ");
str = inScanner.nextLine();
}
}
return str;
}
private static int odd(String input){
int i = 1;
char ch;
int sumOdd = 0;
while (i < 11){
ch = input.charAt(i);
int x = Character.getNumericValue(ch);
sumOdd = x +sumOdd;
i += 2;
}
int Mx3=sumOdd*3;
return Mx3;
}
private static int even(String input){
int i = 0;
char ch;
int sumEven = 0;
while (i < 11){
ch = input.charAt(i);
int x = Character.getNumericValue(ch);
sumEven = x +sumEven;
i += 2;
}
return sumEven;
}
最佳答案
charAt()
使用基于 null 的索引,但指令希望您使用基于 1 的索引。因此,在 odd() 中从 i = 0 开始。在 Even() 中从 i = 1 开始。
其次,您使用 Character.getNumericValue(ch)
获取字符的 unicode 代码点值,但说明要求您使用数字值。因此,请改用 Integer.parseInt(ch.ToString())
。
private static int odd(String input){
int i = 0;
char ch;
int sumOdd = 0;
while (i < 11){
ch = input.charAt(i);
int x = Integer.parseInt(ch.ToString());
sumOdd = x +sumOdd;
i += 2;
}
int Mx3=sumOdd*3;
return Mx3;
}
private static int even(String input){
int i = 1;
char ch;
int sumEven = 0;
while (i < 11){
ch = input.charAt(i);
int x = Integer.parseInt(ch.ToString());
sumEven = x +sumEven;
i += 2;
}
return sumEven;
}
代码未测试
关于java - UPC 代码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42450795/
我们想将 12 位 UPC-A 转换为 8 位 UPC-E。您能告诉我哪种方法最好,而无需使用我自己的代码进行转换吗? 我有很多公式可以将 8 位 UCC-E 转换为 12 位 UPC-A 但不能反转
将零抑制的八位 GTIN-12 标识符(表示为 UPC-E 条形码)转换为 UPC-A 条形码中显示的完整十二位版本的算法是什么? 最佳答案 从以下模式映射可以最清楚地看出在 UPC-E 和 UPC-
我正在尝试将 UPC-E 转换为 UPC-A,但我看到了奇怪的结果。我相信它们可能是正确的,因为我发现的两个引用站点显示了相同的转换,但我认为 UPC-E 应该明显地转换为 UPC-A。 678905
有没有什么格式我们可以用来识别 UPC 代码而不是只检查位数? 最佳答案 我有一些 Objective-C 代码可以验证用户输入的字符串,看它是否是有效的 UPC 或 EAN 条形码。这支持 UPC、
我想在全局地址空间中声明一个共享矩阵,但不通过 UPC 线程执行任何计算,而是使用 CUDA 的 GPU。 那么是否可以声明一个 UPC 共享数组,其中数组中的数字元素不等于或不是线程数(THREAD
我一直在试图找出为什么我的输出不是它应该的样子。给出的示例是 Enter a UPC (enter a blank line to quit): 036000291453 Check digit sh
我有一个包含 12 位 UPC-A 格式条码(1,900,000 条记录)的 UPC 数据库。由于前导零,目前它们存储为 varchar(13)。我正在使用 SQL Server 2008 R2。 我
我已查看文档,但尚未了解如何根据 UPC 进行搜索。 我可以看到我从每张专辑中得到了什么,但如何进行查找? 有人知道吗? 最佳答案 这是 UPC 专辑查找的格式:http://api.deezer.c
我一直在尝试使用Zxing 2.3.0在java中读取带有+5补充的UPC条形码图像,但是我无法读取条形码的补充部分。该代码仅成功读取第一部分。在搜索了多个网站之后,除了我当前的方法之外,我找不到任何
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我的工作环境是Visual Studio 2008 + C# 我在 Amazon WebService 上工作,我想使用 SOAP 从 Amazon 获取数据,但是当我尝试传递 IDType = UP
我正在使用 zxing 在我的应用程序中实现条码扫描器。问题是扫描结果始终将 UPC-E 检测为扫描格式并返回错误结果。有什么办法可以解决这个问题吗? 我正在使用以下代码启动扫描: Intent i
我正在跟踪一家链式店的杂货价格,但我在使用 MySQL 语句时遇到了问题。 我的三个表的设置如下: upccode_table,有两个字段:upc_code、item_name storelist_t
我们使用 Zxing API 将字符串生成为 upc-a 条码图像。但是该图像仅包含条形码,但不包含如下链接图像中的字符串: https://postimg.org/image/7t66lqa83/
我需要一些关于如何从 bmp 文件中获取 12 位条形码的指导,我完全不知道如何处理这个问题。我首先将图像读入 bitmam,我该如何继续? 例子:下图的条码是081034489030。我如何获得这些
我正在尝试在具有 CPU/GPU 混合节点的集群上使用 UPC。环境是Ubuntu 12.04。我是 UPC 的新手,我发现了 2 个版本的 UPC:GNU UPC(GUPC) 和 Berkeley
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
虽然我已经阅读了很长时间有关 PHP 的内容以及我遇到的一些 Android 问题,但我是堆栈溢出方面的新手。 我的问题是如何从条形码扫描仪获取数据(仅 UPC 代码和图像)以便将其插入 MySQL
很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center . 8年前关闭
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭10
我是一名优秀的程序员,十分优秀!