【发布时间】:2015-11-25 12:32:51
【问题描述】:
我的函数需要接受两个参数,称为数据,播放器。参数数据是一个包含nba.txt 电子表格数据的二维字符串数组。参数 player 是一个字符串。 该函数查找数据中的所有行,其中第 0 列(在其小写版本中)包含作为子字符串存储在播放器中的字符串(也在其小写版本中)。对于所有这样的行,它会打印相应玩家的统计数据。
我的代码:
public static void print_player_info(String[][] data, String player)
{
String name = player.toLowerCase();
for(int i = 0; i<data[0].length; i++)
{
String namecolumn = data[i][0];
String rownames = data[0][i];
for(int j = 0; j<data[0].length; j++)
{
String temp = Arrays.toString(data[j]);
if(temp.toLowerCase().contains(player))
{
System.out.println(rownames+": "+data[j][i]);
}
}
}
}
如果我的输入一次只检索一个人,它会以所需的方式工作。
示例:输入:“lebro” 输出:
player: LeBron James
games played: 69
minutes per game: 36.1
etc...
如果我的输入碰巧检索到多个人,它会堆叠打印:输入“jam”
player: James Harden
player: LeBron James
games played: 81
games played: 69
etc...
当我输入“jor”时,它应该会找到多个包含“jor”的名称,但它什么也不输出。我想知道如何解决这个问题以及之前的输入是:
player: James Harden
games played: 81
etc...
player: LeBron James
games played: 69
etc...
【问题讨论】:
-
你的数组是这样填充的:[["James Harden", "81"], ["Lebron James", "69"]]?因为这就是二维数组的工作方式。您显示的第二个输出看起来确实不同
-
2 行的一部分:詹姆斯哈登,81 岁,36.8 岁...勒布朗詹姆斯,69 岁,36.1 岁...
-
也许您可以使用初始化数组的样本扩展您的示例,并将其作为
String[][] data传递给您的方法。
标签: java arrays if-statement for-loop printing