我试图生成随机十六进制值的列表(超过500000)。我需要计算有多少唯一值,并能够将十六进制复制并粘贴到文本文件中。但是,当我尝试从控制台复制值时,我会丢失字符串。例如,创建了40000个十六进制值,但控制台仅列出了大约6000个值。该程序适用于较小的数字,并始终告诉我正确的唯一值。
public class HexGenerator {
private static String getRandomHexString(int numchars) {
Random r = new Random();
StringBuffer sb = new StringBuffer();
while (sb.length() < numchars) {
sb.append(Integer.toHexString(r.nextInt()));
}
return sb.toString().substring(0, numchars);
}
public static void main(String args[]) {
LinkedList < String > address = new LinkedList < String > ();
for (int x = 0; x < 40000; x++) {
String a = getRandomHexString(4);
System.out.println("7f1a9800" + a + " ");
if (!address.contains(a))
address.add(a);
}
System.out.println();
System.out.println(address.size());
}
}
如何在控制台中打印所有字符串?
答案 0 :(得分:3)
您的控制台有自己的限制。要将所有输出重定向到文本文件,请使用&#34; java MyProgram&gt; somefile.txt&#34; (我认为适用于Linux和Windows)。
答案 1 :(得分:0)
如果您使用的是Eclipse,请转到首选项 - &gt;运行/调试 - &gt;控制台并取消选择限制控制台输出。