Tag: java

如何在Java中将数字四舍五入到小数点后n位

我想要的是一个方法来将double转换为使用half-up方法进行舍入的string,即,如果小数点要舍入为5,则它总是舍入到前一个数字。 这是大多数人在大多数情况下所期望的四舍五入的标准方法。 我也只想显示有效数字 – 即不应该有任何尾随零。 我知道一个这样做的方法是使用String.format方法: String.format("%.5g%n", 0.912385); 收益: 0.91239 这是很好的,但是它总是显示5位小数的数字,即使它们不显着: String.format("%.5g%n", 0.912300); 收益: 0.91230 另一种方法是使用DecimalFormatter : DecimalFormat df = new DecimalFormat("#.#####"); df.format(0.912385); 收益: 0.91238 但是,正如你所看到的,这使用半双舍入。 如果前面的数字是偶数的话,那就是下降了。 我想要的是这样的: 0.912385 -> 0.91239 0.912300 -> 0.9123 在Java中实现这个最好的方法是什么?

为什么使用getters和setter?

使用getter和setter有什么好处 – 只能得到和设置 – 而不是简单地使用这些variables的公共字段? 如果吸气人员和安装人员做的不仅仅是简单的get / set,我可以很快地把这个问题弄清楚,但是我不是100%清楚的: public String foo; 比任何更糟的是: private String foo; public void setFoo(String foo) { this.foo = foo; } public String getFoo() { return foo; } 而前者则less了许多样板代码。 从Java Web开发人员的观点来看,这里列出了我最喜欢的获奖者名单: 当你意识到你需要做的不仅仅是设置和获取价值,你不必改变代码库中的每个文件。 你可以在这里执行validation。 您可以更改正在设置的值。 您可以隐藏内部表示。 getAddress()实际上可以为你获得几个字段。 您已将公共界面与表单下的更改隔离开来。 有些图书馆期待这一点 reflection,序列化,模拟对象。 inheritance这个类,你可以覆盖默认的function。 你可以对getter和setter有不同的访问级别。 延迟加载。 人们可以很容易地告诉你没有使用Python。

如何在Java中分割string

我有一个string"004-034556" ,我想分成两个string: string1=004 string2=034556 这意味着第一个string将包含'-'之前的字符,第二个string将包含'-'之后的字符。 我也想检查一下string是否有'-' 。 如果没有,我会抛出一个exception。 我该怎么做?

为什么处理sorting后的数组比未sorting的数组更快?

这是一个C ++代码,看起来很奇特。 出于一些奇怪的原因,对数据进行奇迹sorting使得代码快了近6倍。 #include <algorithm> #include <ctime> #include <iostream> int main() { // Generate data const unsigned arraySize = 32768; int data[arraySize]; for (unsigned c = 0; c < arraySize; ++c) data[c] = std::rand() % 256; // !!! With this, the next loop runs faster std::sort(data, data + arraySize); // Test clock_t start = clock(); […]

没有AWT的Java GUI侦听器

我是一名首发的Java开发人员,仅从互联网教程学习。 我正在学习全屏GUI应用程序。 我昨天被告知,我不应该在我的程序中使用AWT,因为它已经过时了。 我已经知道轻量级和重量级的组件,主要问题是鼠标和键盘的监听器。 为什么AWT过时了? 如何使一个没有AWT的程序(将监听器添加到JComponents等)(什么样的Swing的东西可以代替AWT)?

如何修复java.lang.UnsupportedClassVersionError:不支持的major.minor版本

我正在尝试使用Notepad ++作为我的所有function于一身的工具编辑,运行,编译等。 我已经安装了JRE ,并且已经将pathvariables设置为… / bin目录。 当我在Notepad ++中运行我的“Hello world”时,出现以下消息: java.lang.UnsupportedClassVersionError: test_hello_world : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) ………………………………….. 我认为这里的问题是关于版本的; 某些版本的Java可能是旧的或太新的。 我该如何解决? 我应该安装JDK,并将我的pathvariables设置为JDK而不是JRE? JRE或JDK中的PATHvariables有什么区别?

如何在没有得到“SomeType @ 2f92e0f4”的情况下打印我的Java对象?

我有一个类定义如下: public class Person { private String name; // constructor and getter/setter omitted } 我试图打印我的课程的一个实例: System.out.println(myPerson); 但是我得到了以下输出: com.foo.Person@2f92e0f4 。 当我试图打印一个Person对象的数组时,发生了类似的事情: Person[] people = //… System.out.println(people); 我得到了输出: [Lcom.foo.Person;@28a418fc 这个输出是什么意思? 如何改变这个输出,使其包含我的人的名字? 如何打印我的对象的集合? 注意 :这是针对这个问题的规范问答。

如何使用Servlets和Ajax?

我对web应用程序和Servlets非常陌生,我有以下问题: 每当我在servlet中打印一些内容并通过浏览器调用它时,它将返回一个包含该文本的新页面。 有没有办法使用Ajax打印当前页面中的文本?

使用java.net.URLConnection来触发和处理HTTP请求

在这里经常会问到java.net.URLConnection用法, Oracle教程 太简单了。 该教程基本上只显示如何触发GET请求并阅读响应。 它没有解释如何使用它来执行POST请求,设置请求头,读取响应头,处理cookie,提交HTML表单,上传文件等。 那么,如何使用java.net.URLConnection来触发和处理“高级”HTTP请求呢?

如何在Java中的特定范围内生成随机整数?

我试图用Java生成一个随机的int值,但是在一个特定的范围内。 例如: 我的范围是5 – 10 ,这意味着5是最小的可能值, 10是最大的。 这些数字之间的任何其他数字也可能是一个值。 在Java中, Math类中有一个random()方法,它返回一个介于0.0和1.0之间的double值。 在类Random有nextInt(int n) ,它返回一个随机的int值,取值范围为0 (包括)和n (不包括)。 我找不到一个方法,它返回两个数字之间的随机整数值。 我已经尝试了以下的事情,但我仍然有问题:(最小和最大的数字是最小的和最大的)。 解决scheme1: randomNum = minimum + (int)(Math.random() * maximum); 问题: randomNum可以大于maximum 。 解决scheme2: Random rn = new Random(); int n = maximum – minimum + 1; int i = rn.nextInt() % n; randomNum = minimum + i; 问题: randomNum可以小于minimum […]