You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java新手求助:如何将字符串数组传入函数并返回以实现代码复用

关于Java中字符串数组传入函数实现复用的解决方案

嘿,很高兴看到你上手写Java井字棋啦!你想把字符串数组传入函数实现复用的思路非常棒——这正是代码复用的核心思路之一。其实你已经在尝试这么做了,不过咱们可以调整下代码,修正几个小问题,让它真正实现复用的效果。

首先先指出你代码里的两个小错误:

  1. 数组索引问题:Java的数组索引是从0开始的,你定义的field数组长度是9,索引范围是0-8,但你在board方法里用了field[1]到field[9],这会触发数组越界异常。
  2. 格式化占位符错误:String.format里的占位符应该是%s,而不是$s,否则无法正确替换数组内容。

接下来,咱们修改代码,让board方法真正能复用:这个方法的作用就是接收棋盘数组,然后打印出当前的棋盘状态。以后不管棋盘怎么更新,只要调用这个方法传入最新的数组,就能打印出最新状态,这就是复用的体现。

修改后的完整代码如下:

package Lesson1;
public class TicTacToe {
    public static void main(String args[]) {
        // 初始化棋盘数组,索引0-8对应棋盘的1-9位置
        String field[] = {"1","2","3","4","5","6","7","8","9"};
        // 第一次打印初始棋盘
        board(field);
        
        System.out.println("Choose your field");
        String printX = "X";
        String printO = "O";

        // 举个复用的例子:假设玩家选择了位置5(对应索引4),更新棋盘后再次打印
        field[4] = printX;
        board(field); // 这里复用board方法打印更新后的棋盘
    }

    // 这个方法负责接收棋盘数组并打印,实现复用
    public static void board(String[] field){
        System.out.println("Printing board");
        System.out.println("-------------");
        // 修正索引和占位符,对应数组的0-2、3-5、6-8索引
        System.out.println(String.format("| %s | %s | %s |",field[0],field[1],field[2]));
        System.out.println("|---|---|---|");
        System.out.println(String.format("| %s | %s | %s |",field[3],field[4],field[5]));
        System.out.println("|---|---|---|");
        System.out.println(String.format("| %s | %s | %s |",field[6],field[7],field[8]));
        System.out.println("-------------");
        // 因为我们只是打印棋盘,不需要返回数组,所以返回类型改成void更合适
    }
}

这里几个关键的复用要点:

  • 把棋盘打印逻辑封装到独立的board方法中,这个方法只负责接收棋盘数组并打印,职责单一。
  • 后续任何时候需要打印棋盘(比如初始状态、玩家落子后、AI落子后),只需要调用board(field),传入当前的棋盘数组即可,不用重复写打印代码。
  • 因为数组是引用类型,在main方法中修改数组内容后,board方法能直接拿到修改后的最新内容,非常适合这种需要共享状态的场景。

这样调整后,你的代码不仅实现了数组传入函数的复用,还修正了潜在的异常问题,后续扩展功能也会更方便~

内容的提问来源于stack exchange,提问作者Mihail Danilov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 06:47:48