【发布时间】:2018-06-05 03:14:01
【问题描述】:
这是我正在处理的代码。我不知道我哪里出错了。
package mcdcpairwise;
import java.io.*;
import java.util.*;
public class Permutation
{
public static void main(String[] args)
{
String a="000";
String b="|&";
for (int i=0; i < a.length(); i++){
if (i % 2 != 0){
a = a.substring(0,i-1) + b.substring(0,i-1). + a.substring(i, a.length()) + b.substring(i, b.length());
System.out.println(a);
}
}
}
}
我面临的错误是:
线程“主”java.lang.StringIndexOutOfBoundsException 中的异常: 字符串索引超出范围:-2 at java.lang.String.substring(String.java:1967) 在 mcdcpairwise.Permutation.main(Permutation.java:13)
输出应该是:
0|0&0
【问题讨论】:
-
您发布的代码为我生成了
&00作为输出,它看起来应该是这样的......b和|从未使用过。 -
在使用 b 时遇到错误。所以我尝试使用 & 来做
-
stackoverflow.com/questions/537174/… 的可能重复项 - 检查那里的答案;他们可能会有所帮助。
-
我觉得第一个
a.substring(0,i-1)应该是a.substring(0,i) -
欢迎来到 SO。发布的代码不会产生错误。您正在尝试将
"&"添加到字符串中,那么为什么您期望输出为0|0|0?同样从输出中您可以看到循环只运行一次。