我正在创建一个方法,我必须填充两个不同的数组。一个用人名,一个用人姓
。为此,我使用此程序: 通过这种方式,我在两个单独的方法中创建两个数组,然后我可以在其他方法中使用它们。
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int person;
System.out.println("How many people are there?");
person=in.nextInt();
String [] names=names(person);
String [] surnames=surnames(person);
}
public static String [] names (int person) {
Scanner in=new Scanner(System.in);
String names []=new String [person];
System.out.println("Enter the names of the people");
for (int i=0; i<names.length; i++)
names[i]=in.next();
return names;
}
public static String [] surnames (int person) {
Scanner in=new Scanner(System.in);
String surnames []=new String [person];
System.out.println("Enter the surnames of the people");
for (int i=0; i<surnames.length; i++)
surnames[i]=in.next();
return surnames;
}
但是,我想在同一方法中创建两个数组,然后能够在其他方法中使用它们。
当然有一些更快,更直观的方法。谁能帮我?谢谢。
您需要重构发送给客户端的消息(字符串(:
public static String [] names (int person, String message) {
Scanner in=new Scanner(System.in);
String names []=new String [person];
System.out.println(message);
for (int i=0; i<names.length; i++)
names[i]=in.next();
return names;
}
并调用相同的方法两次:
String [] names=names("Enter the names of the people");
String [] surnames=names("Enter the surnames of the people");
假设你不喜欢使用Person
对象(或类似的东西( - 考虑使用包含两个数组的包装器对象。
像这样:
class Wrapper{
String [] names
String [] surnames
// getters & setters
}
组合方法将返回wrapper
对象。
您可以将 return 语句与 if 条件或开关大小写一起使用以返回不同的值,但您必须记住,函数只能调用 return 语句一次。 一旦调用 return 语句,函数就结束了。
另一种选择是在调用函数时发送参数,以便您知道要问什么。
public static String [] getNameOrSurname(int person, String value) {
Scanner in=new Scanner(System.in);
String retrunValue[]=new String [person];
System.out.println("Enter the +"value"+ of the people");
for (int i=0; i<returnValue.length; i++)
returnValue[i]=in.next();
return returnValue;
}
当您需要调用函数以获取名称时
String [] names = getNameOrSurname(person , 'Name')
当你需要调用函数来获取姓氏时
String [] surnames = getNameOrSurname(person , 'Surname')
最好的方法是使用 getter 和 setters :
设置功能:
public static String [] setNames (int persons, String message) {
Scanner in=new Scanner(System.in);
String names []=new String [persons];
System.out.println(message);
for (int i=0; i<names.length; i++)
names[i]=in.next();
return names;
}
获取函数:
显示阵列
所以每个函数做一件事,一个获取数组的值并填充它。 第二个函数显示它。