如果我运行下面的程序,该程序将引用时间间隔为1秒的两个datestringparsing并比较它们: public static void main(String[] args) throws ParseException { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str3 = "1927-12-31 23:54:07"; String str4 = "1927-12-31 23:54:08"; Date sDt3 = sf.parse(str3); Date sDt4 = sf.parse(str4); long ld3 = sDt3.getTime() /1000; long ld4 = sDt4.getTime() /1000; System.out.println(ld4-ld3); } 输出是: 353 为什么ld4-ld3不是1 (正如我期望的那样,在时间上的一秒差距),但是353 ? 如果我将date更改为1秒后的时间: String str3 = "1927-12-31 […]
当遇到客户端机器上的networking问题时,我希望能够运行一些命令行并将其结果通过电子邮件发送给我自己。 我发现Runtime.exec将允许我执行任意的命令,但收集一个string的结果更有趣。 我意识到我可以将输出redirect到一个文件,然后从文件中读取,但我的spidey感觉告诉我有一个更优雅的方式。 build议?
我正在寻找一个简单的公共方法或运算符,允许我重复一些stringn次。 我知道我可以用for循环写这个,但是我希望在必要的时候避免使用循环,并且在某个地方应该存在一个简单的直接方法。 String str = "abc"; String repeated = str.repeat(3); repeated.equals("abcabcabc"); 相关: 重复stringJavaScript 创buildNSString重复另一个string给定的次数 编辑 我试图避免循环时,他们是不完全必要的,因为: 即使它们被隐藏在另一个函数中,它们也会增加代码的行数。 有人阅读我的代码必须弄清楚我在做什么循环。 即使它被评论并且有一个有意义的variables名,他们仍然必须确保它没有做任何“聪明”的事情。 程序员喜欢把巧妙的东西放在循环中,即使我把它写成“只做它打算做的事情”,也不排除有人来,并增加一些额外的聪明的“修复”。 他们很容易出错。 对于涉及索引的循环往往会产生一个错误。 对于循环往往重用相同的variables,增加真正难以发现范围的错误的机会。 For循环增加了猎人必须看的地方的数量。
如何防止JSP / Servlet Web应用程序中的XSS攻击?
我怎样才能使用Scanner类从控制台读取input? 像这样的东西: System.out.println("Enter your username: "); Scanner = input(); // or something like this, I don't know the code 基本上,我想要做的就是让扫描器读取用户名的input,并将input分配给一个Stringvariables。
有没有人曾经试图使用Swing构build一个适当的多缓冲渲染环境, 在其上面可以添加Swing用户界面元素 ? 在这种情况下,我有一个在背景上绘制的animation红色矩形。 背景不需要每一帧更新,所以我把它渲染到一个BufferedImage上,只重绘清除矩形前一个位置所需的部分。 请参阅下面的完整代码,这扩展了上一个线程中的@trashgod给出的示例。 到现在为止还挺好; animationstream畅,CPU使用率低,不闪烁。 然后,我将JTextField添加到Jpanel(通过单击屏幕上的任何位置),然后通过在文本框内单击来关注它。 清除矩形的前一个位置现在在每个光标闪烁时都失败,请参阅下面的图像。 我很好奇,如果有人知道为什么会发生这种情况(Swing不是线程安全的?图像被asynchronous绘制?)以及在什么方向寻找可能的解决scheme。 这是在Mac OS 10.5,Java 1.6上 JPanel重绘失败http://www.arttech.nl/javaredrawerror.png import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.Insets; import java.awt.Rectangle; import java.awt.Transparency; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.BufferedImage; import javax.swing.JFrame; import javax.swing.JPanel; import […]
在这种情况下,最大只有5,所以我可以逐个检查重复,但我怎么能以一个更简单的方式做到这一点? 例如,如果MAX的值是20呢? 谢谢。 int MAX = 5; for (i = 1 , i <= MAX; i++) { drawNum[1] = (int)(Math.random()*MAX)+1; while (drawNum[2] == drawNum[1]) { drawNum[2] = (int)(Math.random()*MAX)+1; } while ((drawNum[3] == drawNum[1]) || (drawNum[3] == drawNum[2]) ) { drawNum[3] = (int)(Math.random()*MAX)+1; } while ((drawNum[4] == drawNum[1]) || (drawNum[4] == drawNum[2]) || (drawNum[4] == drawNum[3]) […]
使用一个单一的语句,比如更方便,更干净 import java.awt.*; 比导入一堆个人课程 import java.awt.Panel; import java.awt.Graphics; import java.awt.Canvas; … 在import语句中使用通配符有什么问题?
在转换为string时,如何在java中留下一个int用零填充? 我基本上正在寻找填充高达9999与前导零(例如1 =“0001”)的整数。
我在控制面板的“系统”中find了环境variables,并创build了两个新的variables,一个用于用户variables,一个用于系统variables。 两者都被命名为JAVA_HOME,都指向 C:\太阳\ SDK \ JDK \ BIN 但由于某些原因,运行Java命令时仍然出现以下错误… BUILD FAILED C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error occurred while executing this line: C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line: C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation Total time: 1 second C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar […]