如何实现返回二维数组字符串表示的Java方法tilStreng?
问题分析与修正方案
先明确你代码里的核心错误:
- main方法中:
String[][] tall = "";类型不匹配,二维字符串数组不能赋值为普通字符串;调用tilStreng(matrise)时,matrise变量未定义,需先创建题目要求的int二维数组。 - tilStreng方法中:无法访问main里的
tall变量;内层循环每次拼接元素后直接加\n,会导致每个元素单独占一行,不符合格式要求;最后返回null而非目标字符串;直接拼接字符串效率低下,建议用StringBuilder。
修正后的完整代码
public class OppgaveB { public static void main(String[] args) { // 创建题目给定的二维数组 int[][] matrise = {{1,2,3}, {4,5,6}, {7,8,9}}; // 调用方法并打印结果 System.out.println(tilStreng(matrise)); } public static String tilStreng(int[][] matrise) { // 用StringBuilder高效拼接字符串 StringBuilder sb = new StringBuilder(); // 遍历每一行 for (int i = 0; i < matrise.length; i++) { // 遍历当前行的每个元素 for (int j = 0; j < matrise[i].length; j++) { // 添加元素和空格 sb.append(matrise[i][j]).append(" "); } // 每一行遍历完后添加换行符 sb.append("\n"); } // 返回拼接好的字符串 return sb.toString(); } }
代码说明
- 用
StringBuilder替代直接字符串拼接,避免频繁创建字符串对象,提升运行效率。 - 外层循环遍历二维数组的每一行,内层循环遍历当前行的所有元素,每个元素后追加空格。
- 每一行元素遍历完成后追加换行符
\n,完全匹配题目要求的输出格式。 - main方法中先初始化题目指定的二维数组,再调用
tilStreng方法并打印结果。
内容的提问来源于stack exchange,提问作者Elisabeth.Norway
相关产品推荐
相关产品推荐

