一个很简单的问题,即使看起来很长。
我应该编写一个Java代码,接受“ 021250040625Pat John”之类的输入,并将其转换为02份成人餐,每份餐点为12.50(第6个数字表示)4份儿童餐,每份餐点为06.25(第二位)。是帕特·约翰(Pat John)。
我必须加总并加上折扣,但是我可以做所有的事情,'。任何帮助都欢迎,我是Java的新手,但了解基本知识。仅需要帮助阅读输入代码中的这些数字和字母即可。
我已经掌握了代码的基础知识,并且此//(结果是一个占位符)
Scanner userInput = new Scanner(System.in);
System.out.print("Enter your order code: ");
orderCode = userInput.nextDouble();
System.out.println("Name: " + result);
System.out.println("Adult meals: " + result);
System.out.println("Child meals: " + result);
System.out.println("Subtotal: " + result);
System.out.println("15% Discount: " + result);
System.out.println("Total: " + result);
答案 0 :(得分:1)
我建议将进餐代码作为字符串读取,然后使用substring
方法将其切成段。只要您的用餐代码遵循相同的方案,这将起作用。您将得到小的字符串,可以将它们解析为整数或双精度型。有几种方法可以解决价格中缺少小数点的问题,例如将精度除以所需的精度(2个小数为100)。
成人用餐部分看起来像这样:
int numAdultMeals = Integer.parseInt(orderCode.substring(0, 2));
double adultMealPrice = Double.parseDouble(orderCode.substring(2, 6)) / 100.0;
答案 1 :(得分:1)
您要使用Scanner#nextLine()
获取订单代码,并使用String#substring(int beginIndex, int endIndex)
获取单个号码。您可以使用Integer.praseInt(String s)
将数字从String
转换为int
:
Scanner userInput = new Scanner(System.in);
System.out.print("Enter your order code: ");
// Get the entire code using Scanner.nextLine() instead of Scanner.nextDouble()
String code = userInput.nextLine();
// Get the first two characters (the adult meals)
int adultMeals = Integer.parseInt(code.substring(0, 2));
// Get the next four characters separated by a period (the price)
double price = Double.parseDouble(code.substring(2, 4) + "." + code.substring(4, 6));
// Get the next two characters (the child meals)
int childMeals = Integer.parseInt(code.substring(7, 8));
// Get the next four characters separated by a period (the child price)
double childPrice = Double.parseDouble(code.substring(8, 10) + "." + code.substring(10, 12));
/*
* To calculate the subtotal, multiple the adult price by the number of adult
* meals, and the child price by the number of child meals, then add the two
* together.
*/
double subtotal = (price * adultMeals) + (childPrice * childMeals);
// The discount is 15% of the subtotal
double discount = subtotal * 0.15;
// Subtract the discount to get the total
double total = subtotal - discount;
String name = code.substring(12);
System.out.println("Name: " + name);
System.out.println("Adult meals: " + adultMeals);
System.out.println("Child meals: " + childMeals);
System.out.println("Subtotal: " + subtotal);
System.out.println("15% Discount: " + discount);
System.out.println("Total: " + total);
答案 2 :(得分:0)
签出javas子字符串方法...然后可以将输入分成不同的变量。 或者,将输入存储到char数组,然后使用那里的索引从该数组中获取所需的项目。
答案 3 :(得分:0)
您输入的内容似乎是位置信息,这意味着前两个字符是数量,后四个字符是价格,等等。
如果是这种情况,则可以使用String.substring
来分割字符串(如substring(0,2)
中那样获得前两个字符)。然后使用Double.parseDouble()
将其转换为数字(或者可能将Integer.parseInt()
转换为数字)。
转换价格后,您需要将价格除以100。