gpt4 book ai didi

java - 索引超出范围

转载 作者:行者123 更新时间:2023-11-30 02:22:59 27 4
gpt4 key购买 nike

我希望我的程序与数组中的字符串混合。这些字符串来自 .dat 文件。我不断收到索引超出范围错误。

输入文件:3XYZ abcabc rstuvwxyrstuv ab

想要的输出:阿克斯比茨拉斯btcuavbwcxayb拉斯btaubva

我遇到的错误:

线程“main”中的arbsctException java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:3 在 java.lang.String.charAt(来源未知) 在 test.main(test.java:39)

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class test {

public static void main(String[] args) throws FileNotFoundException {

File file = new File("strings.dat");
Scanner infile = new Scanner(file);
String string1;
String[] mingle = new String[2];
int length;

infile.nextLine();

while (infile.hasNextLine()) {
string1 = infile.nextLine();

for (int i = 0; i < mingle.length; i++) {
mingle = string1.toLowerCase().split("[\\s.]");
}

System.out.println(mingle[1] + mingle[0]);

if (mingle[0].length() > mingle[1].length()) {
length = mingle[0].length();
}

else if (mingle[1] == mingle[0]) {
length = mingle[1].length();
}

else {
length = mingle[1].length();
}

for (int i = 0; i < length; i++) {
System.out.print(mingle[0].charAt(i % length));
System.out.print(mingle[1].charAt(i % length));
}
}
infile.close();
}
}
<小时/>

后续错误

arbsctException in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 3 at java.lang.String.charAt(Unknown Source) at test.main(test.java:39)

最佳答案

第二个 for 循环并不总是有效。由于 length 的值要么是 Mingle[0] 的长度,要么是 Mingle[1] 的长度,因此不能将这两个数组元素放在同一个循环中。

例如。假设 Mingle[0] 的长度为 10,而 Mingle[1] 的长度为 11。由于 Mingle[1] 的长度较大,因此 length 的值为“11”。在本例中,在 for 循环的第 11 次迭代时(即当 i=10 时),则

//At 11th iteration, i=10, length=11
for (int i = 0; i < length; i++) {
System.out.print(mingle[0].charAt(i % length)); //equivalent of mingle[0].charAt(10)
System.out.print(mingle[1].charAt(i % length));//equivalent of mingle[1].charAt(10)
}

由于 Mingle[0] 中的字符可以从 0-9 访问,因此当访问第 10 个元素时,您会得到 java.lang.StringIndexOutOfBoundsException

关于java - 索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46329438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com