㈠ java数组里可以存NULL值吗 取出时会报空指针吗
可以存NULL值,单纯取出来不用不会报NPE错误,但是如果你取出来用的话就会报NPE
㈡ java学习, 数组中为什么会出现null
这里真的赋值了?str1[0]考虑没有null值,就是从这开始的,二且涉及到大量string赋值操作建议你用stringbuilder或者stringbuffer(线程安全)
㈢ Java中如何判断数组元素是否为空
那要看数组元素是干什么了
比如是基础类型,如int,long byte 等等 ,那肯定都不是空,默认为0
如果是Object,直接判断就可以了,比如
Object[]objs=newObject[2];
if(objs[0]==null){
//这样处理就好了
}
㈣ java字符串录入数组后显示null
原因在于你最后for循环输出中i<length里的length取值有问题。你这段程序中,length取的是文件的大小,long length = file.length()返回的是当前文件的所有字符的数量。假如你的文件里的内容是:
第一行:a
第二行:bc
那么此时file.length()是多少呢?其实它是'a'、' '、'b'、'c'、' '五个字符组成,所以此时length=5,然而你读取文件的时候,你用的是readline(),所以会读到两行数据,而你的预期结果也应该是arr数组中有两个字符串。
所有数据读取完后,又由于你arr数组的长度取的是leagth也就是5,此时arr数组的arr[0]="a",arr[1]="bc",arr[2]=null,arr[3]=null,arr[4]=null。所以你最后循环输出arr数组时,后面几个值就是null。
综上,该问题的根本原因在于arr数组长度的定义有误。因为你提前并不能知道文件有多少行,所以你无法确认arr数组到底该设置多少,你就想用file.length()来定义,但file.length()往往是远大于文件行数的。
解决这个问题,可以利用java里的集合List,List在定义的时候不需要声明其长度,最大长度应该是Integer的最大值,使用List的子类ArrayList可以确保顺序无误,将代码修改为:
㈤ java输出的数组前面有NULL
import java.util.*;
public class StudentSystem_1 {
public static void main(String[] args) {
Scanner = new Scanner(System.in);
System.out.println("请输入学生人数:");
int N_stu = .nextInt();
System.out.println("请输入科目数:");
int N_cou = .nextInt();
String[] name = new String[N_stu];
String[] kemu = new String[N_cou];
int[][] course = new int[N_cou][N_cou];
int[] sum = new int[N_cou];
String[] str = new String[N_stu];
String[] str11 = new String[N_stu];
int[] avg = new int[N_stu];
for (int i = 0; i < kemu.length; i++) {// 循环填课程
System.out.println("请输入第" + (i + 1) + "个课程名:");
kemu[i] = .next();
}
for (int i = 0; i < name.length; i++) {// 循环填姓名
System.out.println("请输入第" + (i + 1) + "个学生的姓名:");
name[i] = .next();
// 加这个
str11[i] = "";
for (int j = 0; j < kemu.length; j++) {// 循环填成绩
System.out.println("请输入" + name[i] + "的" + kemu[j] + "成绩:");
course[i][j] = .nextInt();
sum[i] += course[i][j];
str11[i] += course[i][j] + "\t";
}
avg[i] = sum[i] / kemu.length;
str[i] = name[i] + "\t" + str11[i] + sum[i] + "\t" + avg[i];
} // 判断冒泡排序
for (int i = 0; i < sum.length - 1; i++) {
if (sum[i] < sum[i + 1]) {
String b = str[i];
str[i] = str[i + 1];
str[i + 1] = b;
}
} // 输出!
System.out.print("姓名\t");// 输出姓名
for (int i = 0; i < kemu.length; i++) {// 循环显示课程
System.out.print(kemu[i] + "\t");
}
System.out.print("总分\t平均分");
System.out.print("\n");
for (int i = 0; i < name.length; i++) {// 循环输出分数
System.out.println(str[i]);
}
}
}
㈥ java中如何判断一个数组中的值全为null
inta=0;然后在for循环里面判断,如果file2[i]!=null的话,a=a+1;这样的话,如果file2全为null的话,a就是0.直接判断a的值就可以了
㈦ java为什么数组一直是null
因为数组是引用类型,默认初始值是null
㈧ java中的数组元素不能等于null吧,会有异常的吧
不可以等于null的;如果等于了null就会报空指针异常;
如果判断数组是否为NULL,就直接判断 if(array == null){ }循环遍历每个数组元素,然后判断每个元素是不是NULL,前提是数组元素为对象,而不是基础数据类型。
for(int i =0;i<array.length();i++){
if(array[i] == NULL){
}
}
当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
1、 调用 null 对象的实例方法。
2、访问或修改 null 对象的字段。
3、将 null 作为一个数组,获得其长度。
4、将 null 作为一个数组,访问或修改其时间片。
5、将 null 作为 Throwable 值抛出。
㈨ java 中声明了int数组没有初始化时,int数组的默认值为什么是null而不是0
int[]数组不是基本类型,是对象,所以默认为null
java里面所有对象没有new得时候,都为null,基本类型int才是默认为0
㈩ java怎么判断数组里面是NULL
如果判断数组是否为NULL,就直接判断 if(array == null){ }
循环遍历每个数组元素,然后判断每个元素是不是NULL,前提是数组元素为对象,而不是基础数据类型。
for(int i =0;i<array.length();i++){
if(array[i] == NULL){
}
}