使用java将不同的国家货币转换为双倍

我有一个场景,我把货币作为一个字符串,例如: $ 199.00 R $ 399,00 £25.00 90,83€ AED 449.00 如何在java中将这些货币转换为双倍?

为什么即使在本地运行进程,也会无序地获取UDP数据报?

我正在开发流媒体服务器和Flash客户端之间的Java接口。 我注意到即使两个进程都在本地运行,UDP数据报也可能无序到达我的接口。 这是正常的吗? 我认为,由于没有数据报必须经过任何路由器或任何网络设备,因此不应该发生这种情况。

尽可能晚地或在它们所属的最近的大括号中声明局部变量?

我正在为我的组织设定一些编程实践标准。 这样做我遇到了问题“这个问题的标题” 有些人认为最好尽可能晚地声明变量,有些人发现将它们放在方法起始大括号的顶部是好的。 Oracle Standard也表示要尽早声明它们。 所以我赞成在他们所属的最接近的大括号上声明它们。 令人担忧的是 代码可读性 性能 减少错误 欢迎任何评论。

DatagramPacket为字符串

试图将收到的DatagramPacket转换为字符串,但我遇到了一个小问题。 不确定什么是最好的方法。 我将收到的数据大多是未知长度,因此我的接收端设置了一些缓冲区[1024]。 问题是,假设我发送字符串“abc”并在接收方执行以下操作… buffer = new byte[1024]; packet = new DatagramPacket(buffer, buffer.length); socket.receive(packet); buffer = packet.getData(); System.out.println(“Received: “+new String(buffer)); 我得到以下输出:abc [] [] [] []] [] [] [] …..一直到缓冲区长度。 我猜测最后的所有垃圾/空都应该被忽略,所以我一定做错了。“我知道buffer.length是问题,因为如果我将它改为3(对于这个例子),我的出来就好了。 谢谢。

JAXB @XmlAdapter用于任意XML

我有一个org.w3c.dom.Element ,我从我的XmlAdapter返回自定义@XmlElement ,我想将它作为任意XML包含在JAXB对象中(我知道我必须手工制作XSD)。 但是,JAXB抱怨道 org.w3c.dom.Element is an interface, and JAXB can’t handle interfaces. 显然,w3c XML类型不支持Java类型 ,这是一种耻辱。 但javax.xml.transform.Result ,当我使用显然支持的javax.xml.transform.Result时,我得到了同样的错误。 如何在JAXB中包含任意XML元素作为元素? 注意:根据https://forums.oracle.com/thread/1668210我也试过了 MessageFactory factory = MessageFactory.newInstance(); message = factory.createMessage(); SOAPElement element = message.getSOAPBody().addDocument(doc); 但这也给出了同样的错误。

KeyListener在Java swing中没有响应

我正在制作游戏,我有一个完美的主菜单。 当我选择其中一个选项时,它会在新窗口中显示另一个菜单。 但是在这个新窗口中,KeyListener没有响应。 如果我单击返回主菜单窗口,KeyListener仍然在那里工作。 这是代码: 主菜单: import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.swing.*; import java.io.*; import javax.imageio.*; public class DisplayMainMenu extends JFrame implements KeyListener{ static int width = 799, height = 463; int arrowPos = 310; boolean clear = true; BufferedImage menu = null; BufferedImage arrow = null; LevelSkip test = new LevelSkip(); boolean […]

Java – 将hex转换为IEEE-754 64位浮点数 – 双精度

我正在尝试将以下hex字符串:“41630D54FFF68872”转换为9988776.0(float-64)。 使用单精度浮子-32我会这样做: int intBits = Long.valueOf(“hexFloat32”, 16).intValue(); float floatValue = Float.intBitsToFloat(intBits); 但是抛出一个:java.lang.NumberFormatException:使用上面的64位hex时的无限或NaN。 如何将hex转换为使用64位IEEE-754编码的双精度浮点数? 谢谢

使用try-catch java

所以,进入java中try-catch语句的基础知识。 我仍然对语法中的一些差异感到困惑。 这是我试图分析和理解的代码。 另外,使用try then catch(Exception e)与说只是抛出…或者抛出new之间的区别是什么…从我的理解,try catch基本上是一种通过输出消息或传递来处理错误的方法另一种方法。 但是,我认为我坚持它的语法方面。 任何建设性的评论或简单的例子都是受欢迎的人。 关于这个概念的一些澄清以及我的书中的示例代码的内容将会受到赞赏。 /* Invalid radius class that contains error code */ public class InvalidRadiusException extends Exception { private double radius; /** Construct an exception */ public InvalidRadiusException(double radius) { super(“Invalid radius ” + radius); this.radius = radius; } /** Return the radius */ public double getRadius() […]

是否总是使用get和set方法来访问类自己的成员字段?

在Java类中,使用getter和setter访问成员字段是不是很好或者不好? 比如哪个更好: public Order { private Agreement agreement; public Agreement getAgreement() { return agreement; } public void process() { //should I use: getAgreement().doSomething(); //Or: agreement.doSomething(); } } 一般来说,我认为直接访问该字段最好是由于KISS原则,并且有人可能会在以后使用不可预测的结果覆盖get方法。 然而,我的同事认为保留一层抽象更好。 对此有何共识?

为什么典型的Array List实现不是双端的?

为什么ArrayList通常不实现双端,这将支持前端和后端的快速分期插入? 使用后者比前者更不利吗? (我不只是谈论Java – 我没有看到双端数组列表是任何其他语言的默认值,但Java只是一个很好的例子。) *编辑:我最初称它们为“arraysdeques”,但这对我来说是一种误解; 我不是在谈论队列,而是双端arrays表。