刷题的狂欢-----JAVA每日三练-----第四天

Posted 敲代码的xiaolang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题的狂欢-----JAVA每日三练-----第四天相关的知识,希望对你有一定的参考价值。

努力刷题,每日三题,题目来源于《Java课后实战训练手册》----清华大学出版社。

第一题
使用 Integer 类的常用方法,指出条形码“6936983800013”中的“商品的国家代码”、“商品的生产厂商代码”、“商品的厂内商品代码”和“校验码”,运行结果如下图所示。

//标准答案
public class Barcode { // 创建一个Barcode类
	public static void main(String[] args) {
		String code = "6936983800013"; // 初始化一个String类型的变量code,给出一个十三位的条形码
		System.out.println("解析条形码“6936983800013”的含义:");
		String country = code.substring(0, 3); // 截取字符串,并将截取到的字符串给String类型的变量country
		int countryNum = Integer.parseInt(country); // 把String类型的变量country传唤为int类型的变量countryNum
		if (countryNum > 690 && countryNum < 695) { // 判断countryNum是否同时满足这两个条件
			System.out.println(countryNum + ":\\t" + "表示该商品的产地是中国大陆"); // 条件成立时,输出的信息(“\\t”:光标移动到下一个水平制表)
		} else {
			System.out.println(countryNum + ":\\t" + "表示该商品的产地是其他国家"); // 条件不成立时,输出的信息
		}
		System.out.println(code.substring(3, 8) + ":\\t" + "表示该商品的生产厂商代码"); // 输出截取到的字符串,及其代表的含义
		System.out.println(code.substring(8, 12) + ":\\t" + "表示该商品的厂内商品代码"); // 输出截取到的字符串,及其代表的含义
		System.out.println(code.substring(12) + ":\\t" + "表示校验码"); // 输出截取到的字符串,及其代表的含义
	}
}

补充 substring 的用法:

substring() 方法返回字符串的子字符串。

语法如下:
public String substring(int beginIndex)public String substring(int beginIndex, int endIndex)
beginIndex --> 起始索引(包括), 索引从 0 开始。
endIndex --> 结束索引(不包括)。

第二题
对于double类型(基本类型)的数据,可以直接使用普通的运算符来进行比较,如“= =”。然而,对于Double类型(引用类型)却不行。引用类型如果使用“= =”来进行比较则判断内存地址是否相同,答案通常是否定的。本实例演示如何使用Double类中定义的方法来进行对象间比较,运行结果如下图所示。


public class DoubleTest {
    public static void main(String[] args) {
        Double number1 = 12.3;
        Double number2 = 12.3;
        System.out.println("number1:" + number1);
        System.out.println("number2:" + number2);
        switch (number1.compareTo(number2)) {
            case -1:
                System.out.println("number1 < number2");
                break;
            case 0:
                System.out.println("number1 == number2");
                break;
            case 1:
                System.out.println("number1 > number2");
                break;
        }
    }
}

补充compareTo的用法:

compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。只能进行相同数据类型的比较。

//语法:
public int compareTo( NumberSubClass referenceName )
referenceName -- 可以是一个 Byte, Double, Integer, Float, LongShort 类型的参数。

第三题
一苹果商卖苹果有个 “不找零钱(四舍五入)” 习惯,苹果售价为每500克2.49元,苹果商输入顾客购买苹果的数量后,输出这些苹果的未经四舍五入的总价格与顾客的应付金额。

//标准答案
import java.util.Scanner;

public class Apples {
	public static void main(String[] args) {
		double price = 2.49;
		System.out.println("苹果售价:" + price + "元RMB/斤。");
		Scanner sc = new Scanner(System.in);
		System.out.print("输入顾客购买苹果的重量(斤):");
		double weight = sc.nextDouble();
		double totalPrice = price * weight;
		System.out.println("顾客购买的苹果总价格为" + String.format("%.1f", totalPrice) + "RMB。");
		if (String.format("%.1f", totalPrice).contains(".5")) {
			System.out.println("顾客的应付金额为" + (Math.round(totalPrice) + 1) + "RMB。");
		} else {
			System.out.println("顾客的应付金额为" + Math.round(totalPrice) + "RMB。");
		}
		sc.close();
	}
}

补充round的用法:

round() 方法返回一个最接近的 int、long 型值,四舍五入。

//语法:
long round(double d)
//**************************//
int round(float f)

补充String contains() 用法:

contains() 方法用于判断字符串中是否包含指定的字符或字符串。

看下面这个栗子:

public class Main {
    public static void main(String[] args) {
        String myStr = "Runoob";
        System.out.println(myStr.contains("Run"));
        System.out.println(myStr.contains("o"));
        System.out.println(myStr.contains("s"));
    }
}

/*

结果:
true
true
false

*/

补充String.format()用法:

String.format()方法用于创建格式化的字符串以及连接多个字符串对象。

//例如:
System.out.println(String.format("我的名字叫%s", "小明")); // 打印:我的名字叫小明

有问题欢迎评论区留言,笔者才疏学浅,希望各位师傅不吝赐教。

以上是关于刷题的狂欢-----JAVA每日三练-----第四天的主要内容,如果未能解决你的问题,请参考以下文章

刷题的狂欢-----JAVA每日三练-----第十九天

刷题的狂欢-----JAVA每日三练-----第十八天

刷题的狂欢-----JAVA每日三练-----第十六天

刷题的狂欢-----JAVA每日三练-----第十五天

刷题的狂欢-----JAVA每日三练-----第七天

刷题的狂欢-----JAVA每日三练-----第八天