Scanner input = new Scanner(System.in);
int dataCount = input.nextInt();//数据组数
int dataline = input.nextInt();//数据行数
int x = 0;//用于计算机器人移动距离
String[] dataStr = new String[dataline + 1];//用于存储数据
for(int i = 0;i < dataCount;i++){
for(int n = 0;n < dataStr.length;n++){
dataStr[n] = input.nextLine();//将控制面板的信息进行存储
}
/*测试字符串内容是否为null
for(int n = 0;n < dataStr.length;n++){
System.out.println(dataStr[n]);
}*/
for(int n = 0;n < dataStr.length;n++){//机器人移动判定
System.out.println(dataStr[n]);
while(!dataStr[n].equals("LEFT") && !dataStr[n].equals("RIGHT")){
char[] c = dataStr[n].toCharArray();
int lastNumber = Integer.parseInt(String.valueOf(c[c.length - 1]));
dataStr[n] = dataStr[lastNumber - 1];
}
if(dataStr[n].equals("LEFT"))
x--;
if(dataStr[n].equals("RIGHT"))
x++;
}
System.out.println(x);
x = 0;
}
我在for语句中嵌套了两个独立的for循环语句,第一个用来从控制面板输入字符串,第二个用来判定,但是字符串数组在第二个for语句里面为null,而在注释掉的那个for
语句里面输出的字符串数组里面的内容,又是我在控制面板输入的
不懂你想要表达什么,请表述清楚
你的意思有点不是很明白,你可以直接说说你的问题造成的结果。
全局变量可以用的啊,应该是没有达到你想要的最终结果吧,是逻辑出问题了吧
应该不是dataStr声明的问题,怀疑是scanner提取数据有问题。
把输入输出贴一下才比较容易判断问题。
问题描述不清楚啊,不知道你的问题具体是什么,你上面的那段代码辣么写产生了什么后果
scanner获取数据的问题,input = new Scanner(System.in);重新new一个就行了