如何在 Java 中以相反的顺序创建一个字符数组?
How do I create an array of chars in reverse order in Java?
我尝试了以下方法,但总是收到错误消息。 (“线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:10”)
public class rechner2 {
static String a = "7289347928";
public static void main(String[] args) {
for (int i = 0; i < a.length(); i++) {
System.out.println(langeZahl(a)[i]);
}
}
private static char[] langeZahl(String a) {
if (a == null) {
return null;
}
int len = a.length();
char[] array = new char[len];
for (int i = 0; i <= len; i++) {
array[i] = a.charAt(a.length() - i);
}
return array;
}
}
我不明白。
数组在长度为 1 的索引处结束。如果你想这样做,你需要在你创建反向数组的地方说:
array[i] = a.charAt(a.length() - i - 1);
它正在尝试获取位于 a[a.length]
的角色
这是不可能的,因为索引来自 0 -> length-1
你的错误在你的for.在你第一次使用 i < a.length()
但在你第二次使用 i <= len
并且你将需要另一个 'counter' 来保持 'a' 数组的位置你正在获取字符从。固定代码将是这个:
静态字符串 a = "7289347928";
public static void main(String[] args) {
for (int i = 0; i < a.length(); i++)
{
System.out.println(langeZahl(a)[i]);
}
}
private static char[] langeZahl(String a) {
if (a == null) {
return null;
}
int len = a.length();
int j = len-1;
char[] array = new char[len];
for (int i = 0; i < len; i++) {
array[i] = a.charAt(j);
j--;
}
return array;
}
我尝试了以下方法,但总是收到错误消息。 (“线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:10”)
public class rechner2 {
static String a = "7289347928";
public static void main(String[] args) {
for (int i = 0; i < a.length(); i++) {
System.out.println(langeZahl(a)[i]);
}
}
private static char[] langeZahl(String a) {
if (a == null) {
return null;
}
int len = a.length();
char[] array = new char[len];
for (int i = 0; i <= len; i++) {
array[i] = a.charAt(a.length() - i);
}
return array;
}
}
我不明白。
数组在长度为 1 的索引处结束。如果你想这样做,你需要在你创建反向数组的地方说:
array[i] = a.charAt(a.length() - i - 1);
它正在尝试获取位于 a[a.length]
的角色
这是不可能的,因为索引来自 0 -> length-1
你的错误在你的for.在你第一次使用 i < a.length()
但在你第二次使用 i <= len
并且你将需要另一个 'counter' 来保持 'a' 数组的位置你正在获取字符从。固定代码将是这个:
静态字符串 a = "7289347928";
public static void main(String[] args) {
for (int i = 0; i < a.length(); i++)
{
System.out.println(langeZahl(a)[i]);
}
}
private static char[] langeZahl(String a) {
if (a == null) {
return null;
}
int len = a.length();
int j = len-1;
char[] array = new char[len];
for (int i = 0; i < len; i++) {
array[i] = a.charAt(j);
j--;
}
return array;
}