我有这样的方法:
private static byte [] rec (byte []...n) {
int nob = n[0].length - 1;
System.out.println("The length of this is : " + nob);
}
在我的主要方法中,我这样称呼它:
byte [][] shar = one.calculatethresholdscheme(secret, n,k, new SecureRandom());
byte [][] sharesToViewSecret = new byte[] []{shar[0],shar[1],shar[3],shar[6]};
// when we say n[0], n[2], n[3] we are talking for the rows of byte [] [] n which keeps the index from 0 to 7
byte [] recoverSecret = one.rec(sharesToViewSecret);
然后当我把它打印出来时,它给了我一个我没想到的结果。任何人都可以解释n[0].length - 1;
的含义吗?
实际上我希望得到结果4
,因为我使用了四个shar[...]
作为方法参数,但它给了我结果11
,这实际上是我文件的字节数
答案 0 :(得分:2)
声明
private static byte [] rec (byte []...n)
private static byte [] rec (byte [][] n)
在rec
方法中,n
是一个字节数组。 n[0]
是这些数组中的第一个。
当您致电rec
时,n
的第一个元素是shar[0]
,因此n[0].length
正在给您shar[0].length
。如果您想要n
中的元素数量,则只需要n.length
。
答案 1 :(得分:-2)
我很确定n[0].length - 1;
表示取n个数组中第0个术语的长度,然后它将从长度中减去1。例如,如果第0个术语是“Hello”,则长度将为“4”,然后代码将从4中减去1并得到3.请记住,在java和其他语言中,您从0开始计数而不是1。
希望这会有所帮助。