如何在Java中修复“ java.lang.ArrayIndexOutOfBoundsException:1”

时间:2019-11-03 19:16:32

标签: java encryption substitution

我正在使用元素周期表创建替换密码,并且在尝试使用数组索引定义某些变量时遇到了一些问题。

我尝试使用一些条件语句来绕过该问题,但它似乎总是破坏逻辑并使应用程序崩溃。

# Test Results
ok 1 DROP USER IF EXISTS testuser;
not ok 2 WITH PASSWORD 'password';
---
operator: fail
at: <anonymous> (/home/ec2-user/blockchain-explorer/app/test/postgrespgtest.js:2:5157)
stack: |-
  Error: WITH PASSWORD '1234';
      at Test.assert [as _assert] (/home/ec2-user/blockchain-explorer/app/test/node_modules/tape/lib/test.js:226:54)
      at Test.bound [as _assert] (/home/ec2-user/blockchain-explorer/app/test/node_modules/tape/lib/test.js:77:32)
      at Test.fail (/home/ec2-user/blockchain-explorer/app/test/node_modules/tape/lib/test.js:319:10)
      at Test.bound [as fail] (/home/ec2-user/blockchain-explorer/app/test/node_modules/tape/lib/test.js:77:32)
      at /home/ec2-user/blockchain-explorer/app/test/postgrespgtest.js:2:5157
      at processTicksAndRejections (internal/process/task_queues.js:93:5)


 ...(many more errors)

2 个答案:

答案 0 :(得分:4)

您要迭代数组的大小,请更改

 let max = null, maxCount = -Infinity;
 const counts = new Map();

 for(const el of arr) {
   const count = (counts.get(el) || 0) + 1;
   counts.set(el, count);
   if(count > maxCount) {
      maxCount = count;
      max = el;
   }
 }

with open(os.path.join(os.path.dirname(__file__), 'data/msra_train.txt'), 'r', encoding='utf-8') as F1:

编辑:

另一个问题将在这里

for(int i=0; i<=iLen; i++ ){

当我的值i达到最大值(iLen-1)时,这也会导致错误,您需要在此处修复算法

答案 1 :(得分:0)

除了Shailesh Chandra撰写的内容外。 您也可以像这样使用foreach:

for(String st: someStringArray ){
    do something with "st"
}

在此方法中,您将一个接一个地遍历数组中的所有字符串,而不必担心超出范围