在这段代码中,我创建了一个包含四个文本字段的二维文本字段数组。我还提出了一个if
语句,用于检查此数组是否为null
。但我想计算这个数组中有多少文本字段?
@FXML private TextField f00;
@FXML private TextField f01;
@FXML private TextField f10;
@FXML private TextField f11;
TextField txt[][] = new TextField [2][2] ; //the array of textfields
@FXML public void cell() {
txt[0][0] = f00;
txt[0][1] = f01;
txt[1][0] = f10;
txt[1][1] = f11;
for (int i = 0; i<txt.length; i++) {// loop for rows
for (int j =0; j< txt[0].length; j++) { // loop for columns
if(!txt.equals(null)) { // if this array isn't null/ empty!
System.out.println(txt[i][j]); // print what inside this array if the array not null
}
System.out.println(" ");
}
}
答案 0 :(得分:0)
要计算文本字段的数量,您可以尝试这样的事情:
int count = 0;
for (int i = 0; i < txt.length; i++) {
for (int j = 0; j < txt[i].length; j++) {
if (txt[i][j] != null) {
count++
}
}
}
System.out.println("Number of text fields: " + count);
答案 1 :(得分:0)
您检查数组本身是否为null,而不是元素。此外,您使用equals
来检查null
,这会引发NullPointerException
而不是返回true
,因为null
无法解除引用。
在java 8中,您可以使用Streams
为您进行计数:
long count = Stream.of(txt).flatMap(Stream::of).filter(Objects::nonNull).count();