草庐IT

string-math

全部标签

java - java.lang.Math.PI 等于 GCC 的 M_PI 吗?

我正在用Java和C/C++编写多个引用算法。其中一些算法使用π。我希望每个算法的两种实现都产生相同的结果,而不用不同的四舍五入。到目前为止一直有效的一种方法是使用自定义的pi常量,它在两种语言中完全相同,例如3.14159。然而,当Java和GCC库中已经定义了高精度常量时,定义pi是愚蠢的。我花了一些时间编写快速测试程序、查看每个库的文档以及阅读浮点类型。但我无法说服自己java.lang.Math.PI(或java.lang.StrictMath.PI)等于或不等于math.h中的M_PI。GCC3.4.4(cygwin)math.h包含:#defineM_PI3.1415926

java - HQL如何查询String的ElementCollection

我有这样的课publicUser{Longid;Setroles;}如何查询角色为"ADMIN"的所有User对象编辑:我正在使用Hibernate3.0.5。并尝试了大多数显而易见的方法。来自Userswhererolesin('ADMIN')给出了JDBC错误。来自Usersuwhereu.rolesin('ADMIN')给出类转换异常我认为这可能是这个特定版本的hibernate的问题。 最佳答案 我找到了解决方案:"fromUserasuserwhere'ADMIN'inelements(user.roles)";hql函数

java - Java 中的 String... args 和 String[] args 之间有什么区别吗?

这个问题在这里已经有了答案:differencefn(String...args)vsfn(String[]args)(6个答案)关闭7年前。Java中的String...args和String[]args有什么区别?我是Java编程的新手。谁能告诉我(String....args)和(String[]args)之间有什么区别如果我用第一个代替第二个.......有什么区别吗?String...args将声明一个需要可变数量的字符串参数的方法。参数的数量可以是任何值:包括零。String[]args和等效的Stringargs[]将声明一个只需要一个参数的方法:一个字符串数组。可能不会

java - String、StringBuffer 和 StringBuilder 之间的性能和简单性权衡

您是否考虑过Java编程语言的这一变化的含义?String类被认为是一个不可变的类(这个决定是经过深思熟虑的)。但是字符串连接真的很慢,我自己对它进行了基准测试。于是StringBuffer诞生了。真的很棒的类(class),同步而且非常快。但是有些人对某些同步块(synchronizedblock)的性能成本不满意,于是引入了StringBuilder。但是,当使用String连接不多的对象时,类的不变性使其成为实现线程安全的一种非常自然的方式。当我们要管理几个String时,我可以理解StringBuffer的使用。但是,这是我的第一个问题:例如,如果您要附加10个或更少的字符串,

java - 在 Java 中,是否有更优雅的方法来从和 ArrayList of Strings 中删除重复的字符串?

所以,长话短说,我有一个Java家庭作业,它需要以各种方式操作一个长的字符串ArrayList(我们正在做一些事情,比如显示单词的组合,在ArrayList中添加和删除,什么都没有特别的)。我注意到一些提供的ArrayLists有重复的条目(并且重复对于这个作业来说不是必需的),所以我从我的老师那里得到了通过删除重复条目来清理数据的许可。这是我想出的:privatestaticArrayListKillDups(ArrayListListOfStrings){for(inti=0;i这对我的作业来说很好,但我怀疑它在现实世界中是否有用。有没有一种方法可以在比较过程中忽略空格和特殊字符?

java - 如何在 Java 中定义 main(String[] args) 而不会收到警告和错误?

当我在Eclipse项目的默认包中创建一个新的main.java文件时,它会生成一个main方法,如下所示:publicstaticvoidmain(String[]args){}这会立即引发一个警告,指出Thismethodhasaconstructorname。建议的修复是删除void:publicstaticmain(String[]args){}现在我得到的不是警告,而是错误:Illegalmodifierfortheconstructorintypemain;只允许public、protected和private。如果我删除static,我的代码现在看起来像:publicma

java - HashMap<String, boolean> 将所有键复制到 HashMap<String, Integer> 并将值初始化为零

什么是最好的方法?只是遍历并放置键和零,或者是否有另一种更优雅或现有的库方法。如果Google的guavajava库有任何有用的功能,我也在使用它吗?想检查是否有类似于列表复制方法或Map的putAll的方法方法,但仅用于键。 最佳答案 不要认为这里需要什么花哨的东西:Mapmap=...;MapnewMap=Maps.newHashMapWithExpectedSize(map.size());for(Stringkey:map.keySet()){newMap.put(key,0);}如果你确实想要Guava的一些花哨的东西,有

java - 没有结果时 executeQuery(String sql) 返回什么?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Howtocheckifresultsethasonerowormore?当SQL查询的结果为零行时,executeQuery(Stringsql)会返回什么>?如果它返回一个ResultSet对象,我们将如何检测到SQL查询没有返回任何内容。假设SQL查询是一个SELECT语句。

java - Math.round 和 Math.ceil 不工作

我正在尝试对用户输入进行四舍五入,但我似乎可以将我的double四舍五入为int。基本上,当我输入4.4999时,它不会四舍五入到5。有什么想法吗? 最佳答案 Math.ceil()返回上限值。它不能更改它作为参数的变量的值,因为Java按值传递参数。所以你需要做hours=Math.ceil(hours); 关于java-Math.round和Math.ceil不工作,我们在StackOverflow上找到一个类似的问题: https://stackover

java - 迭代 List<String> 并修改 String

我不能用这种方式修改List的元素:for(Strings:list){s="x"+s;}执行后这个列表的代码元素没有改变如何用最简单的方式通过List实现modyfing的迭代。 最佳答案 由于String对象是不可变的,因此您无法更改正在迭代的值。此外,您不能修改在这样的循环中迭代的列表。执行此操作的唯一方法是使用标准循环遍历列表索引或使用ListIterator接口(interface):for(inti=0;i 关于java-迭代List并修改String,我们在StackOve