我是靠谱客的博主 贪玩黑夜,最近开发中收集的这篇文章主要介绍Java黑皮书课后题第4章:4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入题目代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入

  • 题目
    • 题目概述
    • 编程练习题3.9全面分析博文
    • 3.9代码
    • 破题
  • 代码

题目

题目概述

4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入

编程练习题3.9全面分析博文

欢迎到我的3.9博文(点击这里直接跳转),或复制以下url到浏览器:

https://blog.csdn.net/weixin_46356698/article/details/119801361

3.9代码

import java.util.Scanner;

public class Test3_9 {
    public static void main(String[] args) {
        // 获取数据
        Scanner input = new Scanner(System.in);
        System.out.println("Enter the first 9 digits of an ISBN as integer: ");
        int i = input.nextInt();
        int temp = i;

        // 处理数据:赋值d1~d9
        int d1 = i / 100000000;
        i %= 100000000;
        int d2 = i / 10000000;
        i %= 10000000;
        int d3 = i / 1000000;
        i %= 1000000;
        int d4 = i / 100000;
        i %= 100000;
        int d5 = i / 10000;
        i %= 10000;
        int d6 = i / 1000;
        i %= 1000;
        int d7 = i / 100;
        i %= 100;
        int d8 = i / 10;
        i %= 10;
        int d9 = i;
        System.out.println(d1+" "+d2+" "+d3+" "+d4+" "+d5+" "+d6+" "+d7+" "+d8+" "+d9);
        // 求d10
        int d10 =(1 * d1 + 2 * d2 + 3 * d3 + 4 * d4 + 5 * d5 + 6 * d6 +7 * d7 + 8 * d8 + 9 * d9) % 11;

        // 输出
        String str;
        if(d10 < 10) {
            str = "" + temp + d10;
        }else{
            str = "" + temp + "X";
        }
        System.out.println("The ISBN-10 number is " + str);
    }
}

破题

  1. 依然正常从控制台获取用户输入,但以String类型接收
  2. 判断输入数据合法性(长度)
  3. 转为int型(String转int需要使用Integer.parseInt()方法)
  4. 继续原有方法(1~3仅代替3.9获取输入部分)

代码

import java.util.Scanner;

public class Test4_19 {
    public static void main(String[] args) {
        // 获取数据
        Scanner input = new Scanner(System.in);
        System.out.println("Enter the first 9 digits of an ISBN as integer: ");
        String strInput = input.next();

        // 判断输入数据合法性(长度)
        int length = strInput.length();
        if(length != 9){
            System.out.println("Invalid input");
            System.exit(1);
        }

        // 转为int型
        int i = Integer.parseInt(strInput);
        int temp = i;

        // 处理数据:赋值d1~d9
        int d1 = i / 100000000;
        i %= 100000000;
        int d2 = i / 10000000;
        i %= 10000000;
        int d3 = i / 1000000;
        i %= 1000000;
        int d4 = i / 100000;
        i %= 100000;
        int d5 = i / 10000;
        i %= 10000;
        int d6 = i / 1000;
        i %= 1000;
        int d7 = i / 100;
        i %= 100;
        int d8 = i / 10;
        i %= 10;
        int d9 = i;
        // 求d10
        int d10 =(1 * d1 + 2 * d2 + 3 * d3 + 4 * d4 + 5 * d5 + 6 * d6 +7 * d7 + 8 * d8 + 9 * d9) % 11;

        // 输出
        String str;
        if(d10 < 10) {
            str = "" + temp + d10;
        }else{
            str = "" + temp + "X";
        }
        System.out.println("The ISBN-10 number is " + str);
    }
}

最后

以上就是贪玩黑夜为你收集整理的Java黑皮书课后题第4章:4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入题目代码的全部内容,希望文章能够帮你解决Java黑皮书课后题第4章:4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入题目代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部