如何int在特定范围内生成随机值?
我试过以下,但那些不起作用:
尝试1:
randomNum = minimum + (int)(Math.random() * maximum);
// Bug: `randomNum` can be bigger than `maximum`.
Run Code Online (Sandbox Code Playgroud)
尝试2:
Random rn = new Random();
int n = maximum - minimum + 1;
int i = rn.nextInt() % n;
randomNum = minimum + i;
// Bug: `randomNum` can be smaller than `minimum`.
Run Code Online (Sandbox Code Playgroud) 我想使用Java将文件从一个目录复制到另一个目录(子目录).我有一个目录,dir,带有文本文件.我在dir中遍历前20个文件,并希望将它们复制到dir目录中的另一个目录,这是我在迭代之前创建的.在代码中,我想复制review(代表第i个文本文件或审查)trainingDir.我怎样才能做到这一点?似乎没有这样的功能(或者我找不到).谢谢.
boolean success = false;
File[] reviews = dir.listFiles();
String trainingDir = dir.getAbsolutePath() + "/trainingData";
File trDir = new File(trainingDir);
success = trDir.mkdir();
for(int i = 1; i <= 20; i++) {
File review = reviews[i];
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的Linux机器(Slackware)上安装Java应用程序.
我收到了以下错误,我不明白.
你能告诉我如何处理这个问题吗?谢谢.
这是我得到的:(我看到需要设置一些X11 DISPLAY变量,但我应该给它什么值以及如何?)
~$ java -jar gate-5.0-beta1-build3048-installer.jar
- ERROR -
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(Graphic sEnvironment.java:159)
at java.awt.Window.<init>(Window.java:407)
at java.awt.Frame.<init>(Frame.java:402)
at net.sourceforge.mlf.metouia.borders.MetouiaDotsBuf fer.<init>(MetouiaDotsBuffer.java:105)
at net.sourceforge.mlf.metouia.borders.MetouiaDots.<i nit>(MetouiaDots.java:66)
at net.sourceforge.mlf.metouia.borders.MetouiaToolBar Border.<init>(MetouiaToolBarBorder.java:49)
at net.sourceforge.mlf.metouia.MetouiaLookAndFeel.ini tComponentDefaults(MetouiaLookAndFeel.java:241)
at javax.swing.plaf.basic.BasicLookAndFeel.getDefault s(BasicLookAndFeel.java:130)
at javax.swing.plaf.metal.MetalLookAndFeel.getDefault s(MetalLookAndFeel.java:1591)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:537)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:581)
at com.izforge.izpack.installer.GUIInstaller.loadLook AndFeel(GUIInstaller.java:373) …Run Code Online (Sandbox Code Playgroud) 我对shortJava中的原始类型有疑问.我使用的是JDK 1.6.
如果我有以下内容:
short a = 2;
short b = 3;
short c = a + b;
Run Code Online (Sandbox Code Playgroud)
编译器不想编译 - 它说它"无法从int转换为short"并建议我进行转换short,所以这样:
short c = (short) (a + b);
Run Code Online (Sandbox Code Playgroud)
确实有效.但我的问题是为什么我需要施放?a和b的值在short- 范围内 - 短值范围是{-32,768,32767}.我还需要在我想执行操作时进行投射 - ,*,/(我没有检查过其他人).
如果我对原始类型做同样的int事情,我不需要将aa + bb转换为int.以下工作正常:
int aa = 2;
int bb = 3;
int cc = aa +bb;
Run Code Online (Sandbox Code Playgroud)
我在设计一个类时需要添加两个类型为short的变量,并且编译器希望我进行转换.如果我用两个类型的变量做这个int,我不需要强制转换.
一句小话:原始类型也会发生同样的事情byte.所以,这有效:
byte a = 2;
byte b = 3;
byte c = (byte) (a + b); …Run Code Online (Sandbox Code Playgroud) 使用Java,我想浏览文本行并用&XML实体引用替换所有的&符号()&.
我使用Scanner类扫描文本的行,然后扫描文本中的每个单词.然后我用它CharacterIterator来迭代单词的每个字符.但是,我该如何更换角色呢?首先,字符串是不可变对象.其次,我想&用几个字符(amp&;)替换一个字符().我该怎么做呢?
CharacterIterator it = new StringCharacterIterator(token);
for(char ch = it.first(); ch != CharacterIterator.DONE; ch = it.next()) {
if(ch == '&') {
}
}
Run Code Online (Sandbox Code Playgroud) 在我们离开程序之前,为什么我们需要在任何情况下关闭FileInputStream(和一般的流)?否则会发生什么?如果程序在程序中明确关闭输入流之前停止,则流是否也会自动关闭?
我有一个关于Java中的默认构造函数和继承的问题.
通常,如果你编写一个类并且不包含任何构造函数,Java会自动为你提供一个默认构造函数(一个没有参数),它初始化类的所有实例变量(如果有的话)都有一些默认值(0,null或者是假的.但是,如果使用某些参数编写构造函数,并且不编写任何默认构造函数,则Java不提供默认构造函数.我的问题是:类继承自其他类的情况是什么 - 如果我编写一个带有一些参数的构造函数,但是不包含默认构造函数,它们是否继承了超类的默认构造函数?
我有一个关于在Java中将字符串与空字符串进行比较的问题.有没有区别,如果我将字符串与空字符串比较==或equals?例如:
String s1 = "hi";
if (s1 == "")
Run Code Online (Sandbox Code Playgroud)
要么
if (s1.equals(""))
Run Code Online (Sandbox Code Playgroud)
我知道应该比较字符串(和一般的对象)equals,而不是==,但我想知道它是否对空字符串很重要.
我有一个关于Java继承的问题.
我有两个班A,并B和B类,继承自答:
public class A {
public A() {
System.out.println("Hi!");
}
}
public class B extends A {
public B() {
System.out.println("Bye!");
}
public static void main(String[] args) {
B b = new B();
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行程序B时,输出是:
Hi!
Bye!
Run Code Online (Sandbox Code Playgroud)
问:为什么构造函数的
class A调用,当我创建和对象的class B?
我知道B继承了A - 所有实例或类变量以及所有方法的所有内容,在这个意义上,B的对象具有A的所有特征以及B中定义的一些其他特征.但是,我不知道并且没有'我想象当我创建一个B类型的对象时,也会调用A的构造函数.所以写下这个:
B b = new B();
Run Code Online (Sandbox Code Playgroud)
创建两个对象 - 一个是B类,另一个是A类.
这很有趣,
有人可以解释为什么会发生这种情况吗?
我在想Java中构造函数应该放多少代码?我的意思是,你经常在构造函数中调用辅助方法,但有时会有一些较长的初始化事物,例如对于从文件,用户界面或其他程序中读取的程序,只初始化实例变量,构造函数可能会更长(如果你不使用辅助方法).我有一些想法,构造函数通常应该简洁明了,不应该吗?这有例外吗?