我需要创建一个充满任何东西的巨大文件.我这样做,但需要很长时间:
exit 1 unless ARGV.length > 0
File.open("file-#{ARGV[0]}M.txt", 'w') do |f|
(ARGV[0].to_i*1048576).times {f.write(1) }
end
Run Code Online (Sandbox Code Playgroud)
这样做的最佳方式是什么(以独立于平台的方式?)
代码非常简单:
List lst1 = new ArrayList(){{add("1");}};
Iterator it = lst1.iterator();
System.out.println(it.hasNext());
it.next();
System.out.println(it.hasNext());
lst1.remove(0);
System.out.println(it.hasNext());
Run Code Online (Sandbox Code Playgroud)
我知道你在迭代迭代器时不应该从集合中删除,请不要告诉我.
相反,请给我一个理智的解释为什么remove()操作会将hasNext()返回的值从false更改为true:
$ /usr/lib/jvm/sun-jdk-1.6/bin/java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode)
true
false
true
Run Code Online (Sandbox Code Playgroud)
hasNext()API文档明确指出,如果迭代器中有更多元素,它应该返回true,并且调用next()返回一个元素.输出证明SUN JDK 1.6不是这种情况
IBM JDK不这样做,hasNext 在调用remove()后返回false:
$ /usr/lib/jvm/ibm-jdk-bin-1.6/bin/java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pxi3260sr9fp2-20110625_01(SR9 FP2))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux x86-32 jvmxi3260sr9-20110624_85526 …Run Code Online (Sandbox Code Playgroud) 我需要通过<br>重复2次或更多次的分隔符来分割字符串.我正在做:
'a<br><br><br><br>b'.split(/(<br>){2,}/)
Run Code Online (Sandbox Code Playgroud)
不幸的是,它按照String.split规范将组作为其中一个标记返回:
["a", "<br>", "b"]
Run Code Online (Sandbox Code Playgroud)
如何让它不返回组,只获取令牌:
["a", "b"]
Run Code Online (Sandbox Code Playgroud)
?
我正在使用NumberFormat实例格式化我在JTextField中输入的字符串,而不指定位置.因此,我有一个String,表示一个用空格作为分隔符格式的数字.当我想将String用于其他进程时,我有一个问题是摆脱空格.我尝试过string.replaceAll(" ", "");,string.replaceAll("\\s", "");但没有一个有效.
String string = ((JTextField)c).getText();
string = string.replaceAll("\\s", "");
Run Code Online (Sandbox Code Playgroud)
此外,当我这样做int index = string.indexOf(" ");或int index = string.indexOf("\\s");它返回-1,这意味着它没有找到该字符.当我做
for(Character ch : string.toCharArray()) {
System.out.println("ch : " + ch.isSpaceChar(ch))
}
Run Code Online (Sandbox Code Playgroud)
它为空char返回true.如何在java中表示空格char?
我也试过了
StringBuilder b = new StringBuilder(((JTextField)c).getText());
String string = b.toString.replaceAll("\\s", "");
System.out.println("string : " + string);
Run Code Online (Sandbox Code Playgroud)
它不会取代任何东西.