java - JAVA:输入地址值时如何使空格(“”)可读?
问题描述
所以,我被指派做一个电费系统。我很难输入一些中间有空格的字符。例如地址:19 Iffley Road。
在注册模块中,添加新客户及其详细信息:客户姓名、帐号(必须为 10 位数字)、家庭地址、当前抄表(以 kWh 为单位)和以前的抄表(以 kWh 为单位)。
这是我的代码;
import java.util.Scanner;
public class GA {
public static int i = 0;
public static void main(String[] args) {
final int MAX = 40;
String[] names = new String[MAX];
String[] address = new String[MAX];
int[]accnum = new int [MAX];
int[]kwh = new int [MAX];
double[] price = new double [MAX];
double[] total = new double [MAX];
double[] tax = new double [MAX];
double[] t = new double[MAX];
int i = 0;
int respond;
Scanner scan = new Scanner(System.in);
do {
menuDisplay();
respond = scan.nextInt();
switch (respond) {
case 1:
add(names, accnum, address, kwh, total, price, tax);
break;
case 2:
search(names, accnum, address, kwh, total, price, tax);
break;
case 3:
displayAll(names, accnum, address, kwh, total, price, tax);
break;
case 4:
System.out.println("Thank you for using the system!");
break;
default:
System.out.println("Pls enter 1 - 4 only!");
}
} while (respond != 4);
}
public static void menuDisplay() {
System.out.println("======== Menu =========");
System.out.println("1) Register");
System.out.println("2) Search Account");
System.out.println("3) Display All Accounts");
System.out.println("4) Quit");
System.out.print("Enter your option> ");
}
public static void add(String[] names, int[] accnum, String[] address, int[] kwh,double[] total, double[] tax,double[] price) {
Scanner scan = new Scanner(System.in);
int t = 0;
System.out.print("\nCustomer Name : ");
String name = scan.nextLine();
System.out.print("Account Number : ");
int ac = scan.nextInt();
System.out.print("Address : ");
String adr = scan.next();
System.out.print("Current Meter : ");
int cm = scan.nextInt();
System.out.print("Previous Meter : ");
int pm = scan.nextInt();
names[i] = name;
accnum[i] = ac;
address[i] = adr;
t= cm-pm;
kwh[i]= t;
if (t<=200){
price[i] = t*0.218;
}
else if (t<=300){
price[i] = ((t-200)*0.334)+43.6;
}
else if(t<=600){
price[i] = ((t-300)*0.516)+43.6+33.4;
}
else if(t<=900){
price[i] = ((t-600)*0.546)+43.6+33.4+154.8;
}
else if(t>=901){
price[i] = ((t-900)*0.546)+43.6+33.4+154.8+163.8;
}
tax[i] = price[i]*6/100;
total[i] = price[i] + tax[i];
System.out.println("\n------------------------------\n");
System.out.println("Customer Name : "+names[i]);
System.out.println("Account Number : "+accnum[i]);
System.out.println("Total kWh : "+kwh[i]);
System.out.printf("Bill Electricity : RM%.2f %n",price[i]);
System.out.printf("Electricity Tax : RM%.2f %n",tax[i]);
System.out.printf("Total Bill : RM%.2f %n\n",total[i]);
i++;
}
public static void displayAll(String[] names, int[] ans, String[] address, int[] kwh,double[] total, double[] tax,double[] price) {
System.out.println("Displaying all data in the system..\n");
for (int index = 0; index < i; index++) {
System.out.println("\n==========================");
System.out.println("Customer Name : "+names[index]);
System.out.println("Account Number : "+ans[index]);
System.out.println("Address : "+address[index]);
System.out.println("Total kWh : "+kwh[index]);
System.out.printf("Bill Electricity : RM%.2f %n",price[index]);
System.out.printf("Electricity Tax : RM%.2f %n",tax[index]);
System.out.printf("Total Bill : RM%.2f %n",total[index]);
System.out.println("==========================\n");
}
}
public static void search(String[] names, int[] ans, String[] address, int[] kwh,double[] total, double[] tax,double[] price) {
Scanner scan = new Scanner(System.in);
// do {
System.out.print("\nEnter the Customer number> ");
int m = scan.nextInt();
for (int index = 0; index < i; index++) {
if (m == ans[index]) {
System.out.println("Searching data in the system..");
System.out.println("Customer is found!\n");
System.out.println("Customer Name : "+names[index]);
System.out.println("Account Number : "+ans[index]);
System.out.println("Address : "+address[index]);
System.out.println("Total kWh : "+kwh[index]);
System.out.printf("Bill Electricit : RM%.2f %n",price[index]);
System.out.printf("Electricity Tax : RM%.2f %n",tax[index]);
System.out.printf("Total Bill : RM%.2f %n\n",total[index]);
break;
}
else if (m != ans[index]) {
System.out.println("\nNo Customer found!");
System.out.println("Please try again.\n");
}
}
}
}
我输入空格时它一直出错
解决方案
推荐阅读
- typescript - 在打字稿中,在类型化函数参数中,智能感知会忽略可选属性。为什么?
- python - 如何反转编码算法
- java - 是什么导致此方法中出现此异常?java.lang.OutOfMemoryError:Java 堆空间
- c# - 在 Main 函数以外的任何类中使用 Selenium IWebDriver 从 driver.Url 获取“System.NullReferenceException”。C#
- android - android - android:name 和 android:label 之间的区别
- python - Django 中的 sqlalchemy.exc.ProgrammingError
- php - 为什么 Travis CI 无法测试我的 Laravel 网络路由?
- r - 遍历列并返回值
- symfony - Symfony 5 和 API 平台,在验证日期时间时总是收到“这个值应该是字符串类型”
- html - 我如何将按钮和图像对齐?