多个参数的定义。
要求:1、指定查找区间,查找学生姓名并显示是否查找成功
2、修改学生姓名,输入新、旧姓名,进行修改并显示是否修改成功
效果如下:
public class Student {
String[] names=new String[10];
public void addName(String name){
for (int i=0;i<names.length;i++){
if (names[i]==null){
names[i]=name;
break;
}
}
}
public boolean searchName(int start,int end,String name){ //查找区间时用到
boolean find=false;
for (int i=start-1;i<end;i++){ //根据给出的开始及结束的位置查询对应的姓名
if (names[i] != null && names[i].equals(name)){
find=true;
break;
}
}
return find;
}
public int searchName(String name){
for (int i=0;i<names.length;i++){
if (names[i] != null && names[i].equals(name)){
return i; //存在则返回姓名数组的索引
}
}
return -1; //不存在则返回-1
}
public int updateName(String oldName,String newName){
int index=searchName(oldName); //获取查找方法的返回值
if (index==-1){ //根据返回值判断被修改的学生姓名是否存在
System.out.println("该学生不存在!!!");
return -1;
}else {
names[index]=newName;
System.out.println("找到并修改成功!!!");
return 0;
}
}
public void showName(){
System.out.println("本班学生列表:");
for (String i : names){
if (i!=null){
System.out.print(i+"\t");
}
}
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Student student=new Student();
Scanner input=new Scanner(System.in);
String answer="";
do {
System.out.print("请输入学生姓名:");
String name=input.next();
student.addName(name);
System.out.print("继续输入吗?(y/n):");
answer=input.next();
}while (answer.equals("y"));
student.showName();
System.out.println();
System.out.print("请选择操作:1.查找学生\t2.修改学生姓名");
int choose=input.nextInt();
switch (choose){
case 1:
System.out.println();
System.out.print("请输入开始查找的位置:");
int start=input.nextInt();
System.out.print("请输入结束查找的位置:");
int end=input.nextInt();
System.out.print("请输入要查找的学生姓名:");
String name=input.next();
System.out.println("********查找结果********");
if (student.searchName(start,end,name)){
System.out.println("找到该学生!!!");
}else {
System.out.println("查无此人!!!");
}
break;
case 2:
System.out.println();
System.out.print("请输入要修改的学生姓名:");
String oldName=input.next();
System.out.print("请输入新的学生姓名:");
String newName=input.next();
System.out.println("********修改结果********");
student.updateName(oldName,newName);
student.showName();
break;
default:
break;
}
}
}
运行结果如下: