Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改一个数组';是否从另一个数组中删除值?_Java_Arrays - Fatal编程技术网

Java 如何更改一个数组';是否从另一个数组中删除值?

Java 如何更改一个数组';是否从另一个数组中删除值?,java,arrays,Java,Arrays,假设我要制作序列[0]=“XXO” 我如何采取顺序[0]并更改电路板点,以便: String [] board = new String [9]; String [] sequence = new String [8]; sequence[0] = board[0]+board[1]+board[2]; sequence[1] = board[0]+board[3]+board[6]; sequence[2] = board[0]+board[4]+board[8]; sequence[3]

假设我要制作
序列[0]=“XXO”

我如何采取
顺序[0]
并更改电路板点,以便:

String [] board = new String [9];
String [] sequence = new String [8];

sequence[0] = board[0]+board[1]+board[2];
sequence[1] = board[0]+board[3]+board[6];
sequence[2] = board[0]+board[4]+board[8];
sequence[3] = board[1]+board[4]+board[7];
sequence[4] = board[2]+board[5]+board[8];
sequence[5] = board[2]+board[4]+board[6];
sequence[6] = board[3]+board[4]+board[5];
sequence[7] = board[6]+board[7]+board[8];
我正在尝试运行这个for循环,我必须在序列部分之前初始化board数组,因为我正在将它打印到屏幕上,并且不能让值为null

board[0]="X";
board[1]="X";
board[2]="O";
for(int i=0;i<8;i++
{
if(序列[i].equals(“X”+“X”+))
{
序列[i]=“XXO”;
}
}
您可以使用返回字符串数组的字符串,例如:

for(int i = 0; i < 8; i++
{
    if(sequence[i].equals("X"+"X"+" "))
    {
        sequence[i] = "XXO";
    }
}
输出

String[] board;//you could also to not initialize the array here 
               //because you will do that in split
String[] sequence = new String[8];
sequence[0] = "XXO";
board = sequence[0].split("");//split and initialize the board array

//print the values
System.out.println(board[0]);
System.out.println(board[1]);
System.out.println(board[2]);

通常不应该以不同的方式()存储相同的数据,有时因为这样会导致这样的混乱

做你想做的事情的一个正确方法是:

board[0]=String.valueOf(序列[0].charAt(0));
board[1]=String.valueOf(序列[0].charAt(1));
board[2]=String.valueOf(序列[0].charAt(2));

由于您只需要一个字符作为电路板阵列中的元素,您可以使用字符阵列而不是字符串阵列,然后可以使用

X
X
O

请注意,当使用
String.split(“”)时,Java7(您已链接到)及其以下版本会在开头产生一个空字符串
。出于这个原因,您可能应该链接到Java 8文档。对于Java 8及以上版本,您的方式是完美的。请接受UpvoteTank you@ChandlerBing我很感激,但我真的不明白Java 7和Java 8中拆分的区别是什么对不起,您的意思是在使用字符串时,一开始会导致空字符串.拆分(“”).因此,您可能应该链接到Java 8文档。对于Java 8及以上版本?我指的是这个。哇,这对我来说真的是一个新信息,谢谢@ChandlerBing您已经教了我一些新东西,所以我应该更改到Java 8的链接,对吗?哈哈,我感到荣幸!现在更复杂了,您所说的
选择是什么意思+选择
我真的不明白你的意思。我正在制作一个TictaToe游戏,玩家可以选择他们想要的,而电脑则选择相反的,但我现在编辑它是为了让你更明白。我也不想硬编码所有可以赢的方法,所以我认为这会容易得多,但我需要让它变得更简单,以便sequence会更改电路板插槽。为什么不使用List?也许您需要类似以下内容:
List board=new ArrayList();String[]sequence=new String[8];for(int i=0;i<8;i++){if(sequence[i]。equals(“X”+“X”+”){sequence[i]=“XXO”;board.addAll(Arrays.asList(sequence));}}
?我需要这样做,使电路板[2]成为一个O。
char board[] = new char[9];
board = sequence[0].toCharArray();