如何在Java字符数组中找到后跟字符的字符?

如何在Java字符数组中找到后跟字符的字符?,java,arrays,char,Java,Arrays,Char,我试图在一个字符数组中找到一个字符数组,这样在数组中,a后面跟着B。由于某种原因,我没有得到一个错误,但当我有一个带有组合的数组时,我也无法让它完成我想要的工作。我只是想知道是否有人能解释我做错了什么,并为我指出正确的方向 char[] Array = new char[] {'A','B','C','D'....}; char A = 'A'; char B = 'B'; .... for (int i = 0 ; i < Array.length; i ++) { if (Arra

我试图在一个字符数组中找到一个字符数组,这样在数组中,a后面跟着B。由于某种原因,我没有得到一个错误,但当我有一个带有组合的数组时,我也无法让它完成我想要的工作。我只是想知道是否有人能解释我做错了什么,并为我指出正确的方向

char[] Array = new char[] {'A','B','C','D'....};
char A = 'A';
char B = 'B';
....
for (int i = 0 ; i < Array.length; i ++) {
  if (Array[i] == A && Array[i++] == B) {
    //Work Here
  }
}
首先,要使i+1超过数组索引,请在for循环中使用i
char[] arr = new char[] {'A','B','C','D'....};
char a = 'A';
char b = 'B';
....
for (int i = 0 ; i < arr.length - 1; i++) {
    if (arr[i] == a && arr[i+1] == b) {
        //Work Here
    }
}
注意:为了符合Java命名约定,道具名称故意从大写字母转换而来。

首先,要使i+1超过数组索引,请在for循环中使用i
char[] arr = new char[] {'A','B','C','D'....};
char a = 'A';
char b = 'B';
....
for (int i = 0 ; i < arr.length - 1; i++) {
    if (arr[i] == a && arr[i+1] == b) {
        //Work Here
    }
}

注意:道具名称故意从大写字母转换过来,以符合Java命名惯例。

而我更喜欢其他答案中的一些方法。如果您想坚持您的方法,您需要正确的增量运算符,并且还要注意索引不超过界限:

for (int i = 0 ; i < Array.length-1;) {
  if (Array[i++] == A && Array[i] == B) {
    //Work Here
  }
}

qed

而我更喜欢其他答案中的答案。如果您想坚持您的方法,您需要正确的增量运算符,并且还要注意索引不超过界限:

for (int i = 0 ; i < Array.length-1;) {
  if (Array[i++] == A && Array[i] == B) {
    //Work Here
  }
}
qed

问题在这里:数组[i++]==B,也就是说,i++是一个后增量,这意味着它首先计算为i,然后再加1

例如,如果i=0,数组[i++]==B给出数组[0]==B,然后i=1

要解决此问题,请使用数组[i+1]==B或数组[++i]==B

所以, i++返回i,但它将i增加1

问题在于:数组[i++]==B,即i++是一个后增量,这意味着它首先计算为i,然后再增加1

例如,如果i=0,数组[i++]==B给出数组[0]==B,然后i=1

要解决此问题,请使用数组[i+1]==B或数组[++i]==B

所以,
i++返回i,但它将i增加1

,并且它符合Java的命名约定arr可以被称为array。而且它符合Java的命名约定arr可以被称为array。正在工作,但您必须解释为什么他的代码工作不正常我可以给您一个链接,帮助您更好地理解它:正在工作但是你必须解释为什么他的代码不能很好地工作。我可以给你一个链接,帮助你更好地理解它: