Java – 从String中删除奇怪的字符

如何从字符串中删除奇怪的和不需要的Unicode字符(例如带问号的黑色菱形)? 更新: 请告诉我对应于“带有问号的黑色钻石”的Unicode字符串或正则表达式。

比较Java中的相等的双重值。

我想从那些在Java中使用原始double相等经验的人那里得到一些建议。 由于可能的舍入误差,将d1 == d2用于两个双精度d1和d2是不够的。 我的问题是: Java的Double.compare(d1,d2) == 0在某种程度上处理舍入错误吗? 如1.7文档中所述,如果d1在数值上等于d2则返回值0 。 是否有人确定它们在数值上是什么意思? 对某些delta值使用相对误差计算,是否会推荐使用delta的通用(非特定于应用程序)值? 请参阅下面的示例。 下面是考虑相对误差来检查相等性的通用函数。 您建议从delta操作+, – ,/,*操作中捕获大部分舍入误差的delta值是多少? public static boolean isEqual(double d1, double d2) { return d1 == d2 || isRelativelyEqual(d1,d2); } private static boolean isRelativelyEqual(double d1, double d2) { return delta > Math.abs(d1- d2) / Math.max(Math.abs(d1), Math.abs(d2)); }

Java:CSV文件读写

我正在阅读2个csv文件: store_inventory和new_acquisitions 。 我希望能够将store_inventory csv文件与new_acquisitions进行比较。 1)如果项目名称匹配,则只更新store_inventory中的数量。 2)如果new_acquisitions有一个store_inventory中不存在的新项目,则将其添加到store_inventory 。 这是我到目前为止所做的,但不是很好。 我添加了评论,我需要添加1和2 。 任何做上述任务的建议或代码都会很棒! 谢谢。 File new_acq = new File(“/src/test/new_acquisitions.csv”); Scanner acq_scan = null; try { acq_scan = new Scanner(new_acq); } catch (FileNotFoundException ex) { Logger.getLogger(mainpage.class.getName()).log(Level.SEVERE, null, ex); } String itemName; int quantity; Double cost; Double price; File store_inv = new File(“/src/test/store_inventory.csv”); Scanner invscan = null; try […]

在Spring MVCvalidation中,是否可以一次只显示每个字段一条错误消息?

例, 我有 @NotEmpty //tells you ‘may not be empty’ if the field is empty @Length(min = 2, max = 35) //tells you ‘length must be between 2 and 35′ if the field is less than 2 or greater than 35 private String firstName; 然后我输入一个空值。 它说”可能不是空的长度必须在2到35之间’ 是否有可能告诉spring每个字段一次validation一个?

如何调用generics类型对象的方法?

以下代码给出了错误: SceneNode.java:17: cannot find symbol symbol : method execute() location: class java.lang.Object operation.execute(); ^ 1 error 码: import java.util.LinkedList; import java.util.Iterator; public class SceneNode{ T operation; public SceneNode() { } public SceneNode(T operation) { this.operation = operation; } public void setOperation(T operation) { this.operation = operation; } public void doOperation() { operation.execute(); } } 这是一个简单的场景图的缩减(为了您的可读性)。 […]

禁用特定方法/类的Java JIT?

我在我的Java应用程序中遇到了一个JIT破坏代码的问题。 如果我禁用JIT,一切正常,但运行速度慢10-20倍。 有没有办法禁用特定方法或类的JIT? 编辑:我正在使用Ubuntu 10.10,获得相同的结果: OpenJDK Runtime Environment (IcedTea6 1.9) (6b20-1.9-0ubuntu1) OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode) 和: Java(TM) SE Runtime Environment (build 1.6.0_16-b01) Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)

Action类可以限定为Singleton吗?

我的问题不仅仅是动作类可以限定为单例,而且我还想知道哪些是最佳实践。 两者都在Struts2和Spring的背景下。 控制器和型号的最佳VIEW范围(例如请求或会话)。

如何仅从服务器下载新文件?

我有很多CSV文件,我想每天从雅虎财务中下载。 我希望我的应用程序读取文件的创建日期(在我的计算机上,而不是服务器上)。 如果创建日期早于今天,则应下载新文件(因为它将具有新数据)。 如果没有,则不应下载新文件,并且相关计算器(基本上是我的应用程序)应使用最后下载的文件作为特定股票代码。 我做了一些谷歌搜索,并找到了Apache POI项目。 这是最好的方式,有更好的方法,你会推荐什么? JNI在这里有关系吗?

使用Java读取X.509证书

我正在尝试使用Java来读取我从外部方收到的证书。 代码抛出以下错误: java.lang.RuntimeException:java.security.cert.CertificateException:无法初始化,java.io.IOException:提供给DerValue构造函数的额外数据 代码: FileInputStream ksfis = new FileInputStream(this.getCertificateFile()); ksbufin = new BufferedInputStream(ksfis); certificate = (X509Certificate) CertificateFactory.getInstance(“X.509”).generateCertificate(ksbufin); 为了确保问题不在代码中,我创建了一个自签名证书并将其与代码一起使用,并且工作正常。 我在系统密钥链中安装了两个证书,它们都是有效的。 我使用的是Mac和Java 1.6。 在加载外部Party证书时,我知道为什么会出现上述exception? 你认为它在转移过程中被破坏了吗? 如果确实如此,它不应该在本地系统上显示为有效,对吧?

Java相当于std :: deque

我是来自C ++ / STL的相对较新的Java程序员,我正在寻找具有这些特性的类(C ++ std :: deque具有,据我所知): O(1)在开始/结束时插入/移除的性能 O(1)按索引查找的性能 是可成长的集合(不需要固定大小的边界) 是否有Java等同于此? 我找到了Java 1.6 [ArrayDeque]类,它具有插入/删除和可增长的特性,但似乎没有按索引查找,除非你调用toArray(),它不是O(1)。