如何在 Java 中查找 InputStream 中的数字总和
How to find sum of digits inside InputStream in Java
我已经有了这个任务的解决方案,这段代码通过了测试。但是我看不懂。
而我don't have
其他部分的代码,只有这个方法。我应该完成它并通过测试。
测试代码我也没有。
解决方法:
public static int getSum(InputStream is) {
int sum = 0;
try {
int digit = is.read();
while (digit != -1) {
sum += digit;
}
}catch (Exception e){
e.printStackTrace();
}
return sum;
}
例如,如果 InputStream 包含 1,2,10,则总和将为 13。
但是程序如何找到 13 If is.read()
方法 return 输入数字而不是某些数字的字节表示?
应该是 49 + 50 +(10 的字节表示是什么?)= 大于 13
如果读取的数字以相同的二进制格式存在于输入流中 Java 使用(二进制补码,大端),将它们读入 int 将按预期工作。
但是,由于只有一个字节被读入 4byte java int,解决方案将只适用于碰巧在 32 位二进制补码表示中除了最后 8 位之外的所有位都设置为零的数字- 这是从 0 到 127 的正数。
我已经有了这个任务的解决方案,这段代码通过了测试。但是我看不懂。
而我don't have
其他部分的代码,只有这个方法。我应该完成它并通过测试。
测试代码我也没有。
解决方法:
public static int getSum(InputStream is) {
int sum = 0;
try {
int digit = is.read();
while (digit != -1) {
sum += digit;
}
}catch (Exception e){
e.printStackTrace();
}
return sum;
}
例如,如果 InputStream 包含 1,2,10,则总和将为 13。
但是程序如何找到 13 If is.read()
方法 return 输入数字而不是某些数字的字节表示?
应该是 49 + 50 +(10 的字节表示是什么?)= 大于 13
如果读取的数字以相同的二进制格式存在于输入流中 Java 使用(二进制补码,大端),将它们读入 int 将按预期工作。
但是,由于只有一个字节被读入 4byte java int,解决方案将只适用于碰巧在 32 位二进制补码表示中除了最后 8 位之外的所有位都设置为零的数字- 这是从 0 到 127 的正数。