一元递减运算符 --i 的行为类似于 i-- [Android Studio (Java)]

The monadic decrement operator --i behaves like i-- [Android Studio (Java)]

在收到很多 'ArrayIndexOutOfBound' 消息后,这个 for 循环对我有用,但这只是因为我用 (i-1) 进行了补偿。

--i(t)不是表示:_在进入循环之前,减一吗?

for (int i = offset; i > 0; --i) {
    if (Character.isLetter(lnCmplt.charAt(i - 1))) {
      selStart -= 1;
      Log.i("1.for (i-1)= ", (i-1)+" char=["+lnCmplt.charAt(i-1)+"] selStart= "+selStart);
    }
}

Log.i 控制台输出(是真实的,只是经过修整):

lnStart= 492 lnEnd= 506 offset= 7 // from Log line before

I/1.for (i-1)= 6 char=[e] selStart= 6 //<-- this value has to be 5 (i=7 ; --i (=6) ; i-1 (=5)

I/1.for (i-1)= 5 char=[k] selStart= 5 ...

[编辑] 解决方案:在第一个循环中,不执行 x-crement。

这不是一个疯狂的想法,但不,它不是。

--i在语句的其余部分之前执行,但在语句执行时它不会改变。

所以它会在这里工作:

int i = 0;
System.out.println(--i);

但在 for 循环结构中它完全等同于使用 i--.