Tag: 字符串

java.lang.String.replace问题的提示?

我想替换“。” 通过“,”在我想写入文件的String / double中。 使用以下Java代码 double myDouble = myObject.getDoubleMethod(); // returns 38.1882352941176 System.out.println(myDouble); String myDoubleString = “” + myDouble; System.out.println(myDoubleString); myDoubleString.replace(“.”, “,”); System.out.println(myDoubleString); myDoubleString.replace(‘.’, ‘,’); System.out.println(myDoubleString); 我得到以下输出 38.1882352941176 38.1882352941176 38.1882352941176 38.1882352941176 为什么不替换做它应该做的事情? 我希望最后两行包含一个“,”。 我必须做/使用其他东西吗? 建议?

正则表达式编号介于1和100之间

我搜索了很多,但找不到这个RegExp的解决方案(我不得不说我在Reg。表达方面不是很有经验)。 Regex = ^[1-9]?[0-9]{1}$|^100$ 我想测试1到100之间的数字,不包括0

String.intern()的垃圾收集行为

如果我使用String.intern()来提高性能,因为我可以使用“==”来比较实习字符串,我会遇到垃圾收集问题吗? 实习字符串的垃圾收集机制与普通字符串有何不同?

Java – 在两个字符串之间获取所有字符串的最佳方法? (正则表达式?)

这个问题一直困扰着我很长一段时间,但基本上我正在寻找最有效的方法来获取两个字符串之间的所有字符串。 我已经做了好几个月的方式现在是通过使用一堆临时索引,字符串,子串,它真的很乱。 (为什么Java没有本地方法,如String substring(String start, String end) ? 说我有一个字符串: abcabc [pattern1]foo[pattern2] abcdefg [pattern1]bar[pattern2] morestuff 最终目标是输出foo和bar 。 (后来被添加到JList中) 我一直试图在.split()加入正则表达式,但还没有成功。 我尝试使用*和s语法. 但我不认为这是我的意图,特别是因为.split()只需要一个参数来分割。 否则我认为另一种方法是使用Pattern和Matcher类? 但我对适当的程序非常模糊。

在java中的两个字符串之间提取字符串

我尝试在之间获取字符串,这是我的实现: String str = “ZZZZL AFFF “; Pattern pattern = Pattern.compile(“”); String[] result = pattern.split(str); System.out.println(Arrays.toString(result)); 它回来了 [ZZZZL , AFFF ] 但我的期望是: [ dsn , AFG ] 我错在哪里以及如何纠正它?

用Java反转给定的句子

谁能告诉我如何编写Java程序来反转给定的句子? 例如,如果输入是: “这是一个面试问题” 输出必须是: “问题采访是这个”

两个具有相同内容的字符串是否会存储在同一个内存位置?

这是我在采访中遇到的一个问题。 我把两个字符串定义为 String s1=”Java”; String s2=”Java”; 我的问题是这两个引用是否指向相同的内存位置。 通常,当我们创建相同的字符串(没有new关键字)时,内容是否只存储在内存中一次,所有具有相同内容的String对象只是引用相同的位置,而不是冗余地存储字符串“Java”? s1和s2的哈希码是相同的。 但是哈希码是否直接依赖于对象的内存位置?

在Java中使用String(String)构造函数

我读过关于使用String s = new String(“…”);文章和书籍String s = new String(“…”); 应该一直避免。 我理解为什么会这样,但是使用String(String)构造函数是否有任何用处? 我不认为有,也没有看到任何其他证据,但我想知道SO社区中是否有人知道有用。 精确复制: java中表达式新字符串的用途是什么?

如何在Java中将电话号码格式化为字符串?

我一直存储电话号码,我想在将电话号码打印成字符串时添加连字符。 我尝试使用DecimalFormat但不喜欢连字符。 可能是因为它用于格式化十进制数而不是长数。 long phoneFmt = 123456789L; DecimalFormat phoneFmt = new DecimalFormat(“###-###-####”); System.out.println(phoneFmt.format(phoneNum)); //doesn’t work as I had hoped 理想情况下,我也希望在区号上加上括号。 new DecimalFormat(“(###)-###-####”); 这样做的正确方法是什么?

在jasper报告中将字符串格式化为货币格式

我有一个带有一些数值的字符串。 我希望以数百个以逗号分隔的方式格式化它,并且数字前面有$美元符号。 例如,12345应格式化为$ 12,345.00 我尝试了下面没有美元符号的代码: new java.text.DecimalFormat(#,##0.00).format.(myString) 以及带有美元符号的下面一个: new java.text.DecimalFormat($ #,##0.00).format.(myString) 但是,两者都给出了错误。 实现这种格式的正确方法是什么? 这是jasper报告jrxml的一部分,我希望在报告中避免“null”,从而插入以下代码: myString来自查询,并在jrxml中声明为: 之前myString被声明为BigDecimal,但是后来比较运算符?=无效。 如果货币值不可用,我想在报表上打印“不可用”而不是默认的“null”。 否则,我希望如上所述正确格式化数字。 如何解决这个问题? 谢谢阅读。