Java 为什么数组中有额外的值?
我的代码在这里:Java 为什么数组中有额外的值?,java,arrays,Java,Arrays,我的代码在这里: import java.util.Arrays; public class Q1102 { public static void main(String[] args) { String temp = "1 3 5 7 6"; int[] array1 = new int[temp.length()]; for (int i = 0; i < temp.length(); i += 2) {
import java.util.Arrays;
public class Q1102 {
public static void main(String[] args) {
String temp = "1 3 5 7 6";
int[] array1 = new int[temp.length()];
for (int i = 0; i < temp.length(); i += 2) {
int mounth = Integer.parseInt(String.valueOf(temp.charAt(i)));
array1[i] = mounth;
}
System.out.println(Arrays.toString(array1));
}
}
有人能告诉我为什么会发生这种情况,以及如何删除多余的零吗
我已经在输入时打印出了输入数组的值,并且没有任何额外的零。您使用的字符转换方式仅适用于单个数字,它在许多方面都很脆弱。相反,在空白处拆分
字符串
,然后解析这些标记。像
String temp = "1 3 5 7 6";
String[] tokens = temp.split("\\s+");
int[] array1 = new int[tokens.length];
for (int i = 0; i < tokens.length; i++) {
array1[i] = Integer.parseInt(tokens[i]);
}
System.out.println(Arrays.toString(array1));
您使用的字符转换方式仅适用于单个数字,它在许多方面都很脆弱。相反,在空白处拆分
字符串
,然后解析这些标记。像
String temp = "1 3 5 7 6";
String[] tokens = temp.split("\\s+");
int[] array1 = new int[tokens.length];
for (int i = 0; i < tokens.length; i++) {
array1[i] = Integer.parseInt(tokens[i]);
}
System.out.println(Arrays.toString(array1));
这一行中有一个问题temp.length()
。它将以字符串长度返回9
。正如您所知,java采用默认值0
。这就是为什么你会得到额外的零
导入java.util.array;
公开课Q1102{
公共静态void main(字符串[]args){
字符串temp=“1 3 5 7 6”;
整数长度=(温度长度()+1)/2;
int[]数组1=新的int[长度];
对于(inti=0,k=0;i
这一行中的问题是temp.length()
。它将返回9
作为string
长度。正如您所知,java采用默认值0
。这就是为什么会得到额外的零
导入java.util.array;
公开课Q1102{
公共静态void main(字符串[]args){
字符串temp=“1 3 5 7 6”;
整数长度=(温度长度()+1)/2;
int[]数组1=新的int[长度];
对于(inti=0,k=0;i
您能解释什么temp.length()
是什么?这是学习使用调试器的一个很好的例子(在int[]
行上设置断点)将帮助您获得巨大的启发int
数组中int
值的默认值是0
您有i+=2
-因此i
只遍历偶数。这意味着您只在数组中设置偶数点。System.out.printf(“长度是%d%n”,“1 3 5 7 6.length());
temp.length给出数组的长度错误temp
是字符串吗可以解释temp.length()
的作用吗?另外,这是学习使用调试器的一个很好的例子(在int[]
行上设置断点)将帮助您获得巨大的启发int
数组中int
值的默认值是0
您有i+=2
-因此i
只遍历偶数。这意味着您只在数组中设置偶数点。System.out.printf(“长度是%d%n”,“1 3 5 7 6.length());
temp.length给出数组的长度错误temp
是字符串
[1, 3, 5, 7, 6]
import java.util.Arrays;
public class Q1102 {
public static void main(String[] args) {
String temp = "1 3 5 7 6";
int length = (temp.length() + 1)/2;
int[] array1 = new int[length];
for (int i = 0, k = 0; i < temp.length(); i +=2, k++) {
int mounth = Integer.parseInt(String.valueOf(temp.charAt(i)));
array1[k] = mounth;
}
System.out.println(Arrays.toString(array1));
}