这是家庭作业问题。
问题:
“使用大小为10的整数数组,并使用write()方法打印数组的内容。
注意:请不要使用System.out.println()方法。“
这是我到目前为止所尝试的,但它不起作用。
int i = 0;
while (i != array.length) {
byte[] temp = new byte[4];
temp[0] = (byte) (array[i] & 256);
array[i] = array[i] >> 8;
temp[1] = (byte) (array[i] & 256);
array[i] = array[i] >> 8;
temp[2] = (byte) (array[i] & 256);
array[i] = array[i] >> 8;
temp[3] = (byte) (array[i] & 256);
System.out.write(temp, 0, 4);
i++;
}
我找不到办法,请帮帮我。
提前致谢。 :)
答案 0 :(得分:3)
void printInt(int x) {
String s = String.valueOf(x);
for(int i = 0; i < s.length(); i++) {
System.out.write(s.charAt(i));
}
System.out.write('\n');
}
编辑:更漂亮:
void printInt(int x) {
String s = String.valueOf(x);
System.out.write(s.getBytes());
System.out.write('\n')
}
答案 1 :(得分:0)
有一个大小为10的整数数组,即int[] i = new int[10]
,并在System.out.write(int b)
中将每个数组写入write()
方法接受整数作为参数。
这真的很丑陋但它确实有效......
/**
*
*/
package testcases;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
/**
* @author The Elite Gentleman
*
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = {10, 20, 30, 40, 50};
StringBuffer sb = new StringBuffer();
for (int i: array) {
sb.append(String.valueOf(i));
}
try {
System.out.write(sb.toString().getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
答案 2 :(得分:0)
为什么要创建一个字节数组? 有一个write(int b)方法。
Integer array = new Integer[10];
// populate array with some integers
for (Integer i : array) {
System.out.write((int)i);
}
即使是演员(int)我也不需要,因为自动装箱会照顾它。
答案 3 :(得分:0)
诀窍是将int的每个数字转换为char。然后使用System.out.write
编写字符。
因此,例如,如果其中一个int值为91.您需要执行
System.out.write('9');
System.out.write('1');
System.out.flush();