Java 打印出客户姓名、身份证、余额
我正在编写一个我需要的Java程序: 读取客户名称和id并将其存储在数组中的方法。(读取零行或多行的序列,每行包含一个客户的名称和id。每行实例化一个Java 打印出客户姓名、身份证、余额,java,class,object,Java,Class,Object,我正在编写一个我需要的Java程序: 读取客户名称和id并将其存储在数组中的方法。(读取零行或多行的序列,每行包含一个客户的名称和id。每行实例化一个customer对象,并将每个对象存储在对象数组中。数组长度不必超过10个元素。name和id序列将以空行结束) 主要 import java.util.Scanner; 公共类客户测试{ 公共静态void main(字符串[]args){ 客户[]客户=新客户[10]; Scanner myScanner=新扫描仪(System.in); 内努米
customer
对象,并将每个对象存储在对象数组中。数组长度不必超过10个元素。name
和id
序列将以空行结束)
主要
import java.util.Scanner;
公共类客户测试{
公共静态void main(字符串[]args){
客户[]客户=新客户[10];
Scanner myScanner=新扫描仪(System.in);
内努米特姆;
readCustomer(myScanner,customers);//不确定此呼叫
readNameAmount(myScanner,客户);///不确定此呼叫
}
公共静态void readCustomer(扫描器myScanner,客户[]输入){
布尔值=假;
int numItem=0;
而(!streamEnded&&myScanner.hasNext()){
String name=myScanner.nextLine();
String id=myScanner.nextLine();
if(name.length()==0&&id.length()==0){
这是真的;
}否则{
输入[numItem]=name;//错误
输入[numItem]=id;//错误
}
numItem++;
客户测试=新客户(名称、id);
}
}
公共静态无效readNameAmount(扫描器myScanner,客户[]输入){
while(myScanner.hasNext()){
String id=myScanner.nextLine();
double amount=myScanner.nextDouble();
int i=0;
布尔值=false;
而(i你能检查一下这是否有效吗。
我不知道我是否理解你的问题,我只是澄清了错误
public class CustomerTest {
static int numItem = 0;
public static void main(String[] args) {
Customer[] customers = new Customer[10];
Scanner myScanner = new Scanner(System.in);
readCustomer(myScanner, customers); //not sure about this calling
readNameAmount(myScanner, customers); ////not sure about this calling
}
public static void readCustomer(Scanner myScanner, Customer[] input) {
boolean streamEnded = false;
while (!streamEnded && myScanner.hasNext()) {
String name = myScanner.nextLine();
String id = myScanner.nextLine();
if (name.length() == 0 && id.length() == 0) {
streamEnded = true;
}
else {
input[numItem].getName();
input[numItem].getId(); //error
}
numItem++;
Customer customerTest = new Customer(name, id);
}
}
public static void readNameAmount(Scanner myScanner, Customer[] input) {
while (myScanner.hasNext()) {
String id = myScanner.nextLine();
Customer cust = new Customer();
double amount = myScanner.nextDouble();
int i = 0;
boolean found = false;
while (i < numItem && !found) { //error
if (input[i].equals(id)) { //error
cust.changeBalance(amount);//error
}
found = true;
i++;
}
}
}
public static void print(Customer[] input, int numItem) {
for (int i = 0; i < numItem; i++) {
System.out.println(input[i].toString()); //error
}
}
}
customers
和numItem
的范围是错误的(您可能需要这里的字段),changeBalance(double value)
不是有效的语法,您的意思是changeBalance(amount);
确定输入示例是正确的吗?我的意思是您说“名称和id的序列将以空行结束”但是在第一行之后和第二行之后都有一个空行,因此空行不能确定序列是否会将Endedad setters添加到customer类并像这样调用输入[numItem].setName(name);输入[numItem].setId(id);readNameAmount方法中没有numItems,changeBalance方法在哪里?@Benj:在print方法中,它应该像“System.out.println(input[i].toString()”;“@maczikasz My bad,在读取下一行(id和amount)之前,输入应该有一个空行)谢谢你的帮助。我在创建对象cust时出错。我需要一个构造函数吗?@Benj:是的,你需要一个构造函数。请查看我的编辑。这是否正常工作?
public class CustomerTest {
static int numItem = 0;
public static void main(String[] args) {
Customer[] customers = new Customer[10];
Scanner myScanner = new Scanner(System.in);
readCustomer(myScanner, customers); //not sure about this calling
readNameAmount(myScanner, customers); ////not sure about this calling
}
public static void readCustomer(Scanner myScanner, Customer[] input) {
boolean streamEnded = false;
while (!streamEnded && myScanner.hasNext()) {
String name = myScanner.nextLine();
String id = myScanner.nextLine();
if (name.length() == 0 && id.length() == 0) {
streamEnded = true;
}
else {
input[numItem].getName();
input[numItem].getId(); //error
}
numItem++;
Customer customerTest = new Customer(name, id);
}
}
public static void readNameAmount(Scanner myScanner, Customer[] input) {
while (myScanner.hasNext()) {
String id = myScanner.nextLine();
Customer cust = new Customer();
double amount = myScanner.nextDouble();
int i = 0;
boolean found = false;
while (i < numItem && !found) { //error
if (input[i].equals(id)) { //error
cust.changeBalance(amount);//error
}
found = true;
i++;
}
}
}
public static void print(Customer[] input, int numItem) {
for (int i = 0; i < numItem; i++) {
System.out.println(input[i].toString()); //error
}
}
}
public class Customer {
private String name;
private String id;
private double balance;
public Customer(){
}
public Customer(String name, String id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
public void changeBalance(double value) {
balance = balance + value;
}
public String toString() {
return "name " + name + " id " + id + " balance " + balance;
}
}