Tag: 字符串

Java printf使用可变字段大小?

我只是想将一些C代码转换为Java,而我在使用String.printf遇到了一些麻烦。 在C中,为了获得基于变量的特定宽度,我可以使用: printf(“Current index = %*d\n”, sz, index); 它会根据sz将整数格式化为特定大小。 试: System.out.println(String.format(“Current index = %*d\n”, sz, index)); 导致错误,因为它不喜欢* 。 我目前有以下kludge: System.out.println(String.format(“Current index = %” + sz + “d\n”, index)); 但是我希望有更好的方法,是吗?

如果==比较Java中的引用,为什么它使用这些字符串评估为true?

正如所述,==运算符比较对象引用以检查它们是否引用堆上的同一对象。 如果是这样,为什么我得到这段代码的“平等”? public class Salmon { public static void main(String[] args) { String str1 = “Str1”; String str2 = “Str1”; if (str1 == str2) { System.out.println(“Equal”); } else { System.out.println(“Not equal”); } } }

Java String文字池和字符串对象

我知道JVM维护一个字符串文字池来提高性能并维护JVM内存,并了解到字符串文字是在字符串池中维护的。 但我想澄清与堆上创建的字符串池和字符串对象相关的内容。 如果我的解释错误,请纠正我。 String s = “abc”; 如果执行上面的行,如果池中不存在“abc”字符串文字,则将其添加到字符串池中。 并且在堆上创建字符串对象,引用s将指向池中的文字。 问题: 这段代码每次执行时都会在堆上创建字符串对象吗? 字符串文字池是仅维护字符串文字还是维护字符串对象? JVM何时决定是否需要将字符串文字添加到字符串池中? 它是在编译时还是运行时决定的? 如果它指向池中的字符串文字,我不确定创建字符串对象的确切位置。 谢谢。

java分裂函数

有人可以帮助我理解java中的split是如何工作的。我有以下代码 String temp_array[]; String rates = “RF\\0.6530\\0.6535\\D”; String temp = rates.substring(1, rates.length()); System.out.println(temp);// prints F\0.6530\0.6535\D String regex = “\\”; temp_array = temp.split(regex); String insertString = “INSERT into table values(“+temp_array[0]+”,”+temp_array[1]+”,”+temp_array[2]+”,”+temp_array[3]+”)”; 但是在split函数中我得到以下exception Exception in thread “main” java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^ at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) […]

在Java中将字符串转换为二维字符串数组

我想转换字符串例如: String data = “1|apple,2|ball,3|cat”; 像这样的二维数组 {{1,apple},{2,ball},{3,cat}} 我尝试过使用split(“”)方法,但仍然没有解决方案:( 谢谢.. 凯

比较Java中字符串的最快方法是什么?

在Java中比较两个字符串最快的是什么? 有比平等更快的东西吗? 编辑:我无法帮助澄清问题。 我有两个字符串,按字母顺序排序,完全相同的大小 例如:abbcee和abcdee 字符串最长可达30个字符

在Java中将hex字符串转换为一个字节

在Java中,如何将字节的hex字符串表示(例如“1e”)转换为字节值? 例如: byte b = ConvertHexStringToByte(“1e”);

通过java中的标点符号和空格等通过正则表达式拆分字符串

我有这个文本文件,我读入Java应用程序,然后逐行计算其中的单词。 现在我正在将这些行分成一个单词 String.split([\\p{Punct}\\s+])” 但我知道我错过了文本文件中的一些单词。 例如,“不能”这个词应该分为两个词“can”和“t”。 应完全忽略逗号和其他标点符号,并将其视为空格。 我一直试图理解如何形成一个更精确的正则表达式来做到这一点,但我是一个新手,所以我需要一些帮助。 对于我所描述的目的,什么可以是更好的正则表达式?

Java中具有相同价值的字符串?

一个快速而混乱的问题。 如果A级和B级内有这个: – String name=”SomeName”; 并且这两个类都是实例化的,两个实例引用变量“name”的相同内存位置是否正确我们这样做objA.name或objB.name? 它具有值“SomeName”,并且由于String是不可变的,因此同一JVM的两个类的多个实例重复使用相同的变量? 我在网上看到的地方,除非有 String example=new String(“something”); 如果使用,前一个声明总是创建一个副本,并且它将被使用,直到它的所有应用程序都被终止以回收内存。 注意:我看到了几个答案,我指望哪一个,有人可以得出结论。 谢谢大家的努力,感激不尽。

如何通过所有可能性增加java String?

我需要将java中的String从“aaaaaaaa”增加到“aaaaaab”到“aaaaaac”,直到字母表,然后最终到“aaaaaaba”到“aaaaaabb”等。 有这个诀窍吗?