写点我们现阶段能实现的好玩的
开辟一个新的字符串数组,存一些名字进去,然后实现对这个数组里面名字的查找和替换以及添加最后展现
比如我想把"张三", "大漠", "老马"变成
// 法外狂徒张三,琼系军阀大漠,老马
来整波代码,我调了四个方法,一个是遍历数组的增强for,用于打印这个数组
其次是改名的方法,里面先查询数组有无此值,找到了,再修改
再次是把这个改名的输入方式设了个方法,设置改两次名,大家还可以继续丰富
最后就是增加吗名字的方法,本质就是给数组扩容然后赋值,然后把新数组赋给老数组名字,更新了地址
具体方法实现见以下代码
public class Day_08_数组传参 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 法外狂徒张三,琼系军阀大漠,新任厅长韩金龙,待定
String[] nB = { "张三", "大漠", "老马" };
// 先调用检索方法看一下存了些啥
showName(nB);
// 修改操作(循环操作版)
xiugai(nB, 2);
// 新增名字的方法(接收新数组)
System.out.println("===请输入要新增的名字===");
String xin = sc.next();
nB = addName(xin, nB);
System.out.println("===更新后===");
showName(nB);
}
public static String[] addName(String xin, String[] nB) {
// TODO 自动生成的方法存根
// 把原数组长度加一再赋给原数组
nB = Arrays.copyOf(nB, nB.length + 1);
// 将更新的值赋给刚加的数组的下标
nB[nB.length - 1] = xin;
// 最后返回这个更新了地址的数组,这样当原数组接收了
// 这个更新了地址的数组后也会统一变化成新的地址
return nB;
}
public static void xiugai(String[] nB, int num) {
for (int i = 1; i <= num; i++) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要修改的名字" + i);
String jiu = scanner.next();
System.out.println("请输入修改后的名字" + i);
String xin = scanner.next();
gaiName(jiu, xin, nB);
}
}
private static void gaiName(String jiu, String xin, String[] nB) {
// TODO 自动生成的方法存根
// 1 循环遍历数组
for (int i = 0; i < nB.length; i++) {
// 2找到要进行修改的名字
if (nB[i].equals(jiu)) {
// 3修改找到的名字
nB[i] = xin;
}
}
// 4 直接打印数据给用户确认修改的成果
System.out.println("===================");
showName(nB);
}
private static void showName(String[] nB) {
// TODO 自动生成的方法存根
// 检索输出方法
System.out.println("新四大梗王:");
for (String string : nB) {
System.out.println(string);
}
}
}