可能重复: Java字符串替换和NUL(NULL,ASCII 0)字符? 我正在用Java做一些String算法,我注意到无论在哪里我都包含一个值为0(零)的char,它标志着String的结束。 喜欢这个: String aString = “I’m a String”; char[] aStringArray = aString.toCharArray(); aStringArray[1] = 0; System.out.println(new String(aStringArray)); //It outputs “I” 这种行为的原因是什么?
在我正在处理的当前代码库中,我发现自己需要初始化许多不同长度的空String []。 截至目前,它们总是以下列方式初始化: String[] a = new String[]{“”,””,””,””,””,””,””,””,””} // etc… 虽然这是一个简单的单行解决方案,但我个人的偏好是它相当难看。 我只是想知道是否有人知道任何现有的API / Utility提供了一种方法,其中可以更优雅地初始化空字符串数组。 我在思考以下几点: StringUtils.*initialiseEmptyArray*(int size); 有谁知道任何这样的方法? 如果需要的话,我总是可以写自己的,如果已经完成,我不想重新发明轮子。 谢谢
这是我面临的一项常见任务:将空格分隔列表拆分为head元素和包含tail元素的数组。 例如,给定此字符串: the quick brown fox 我们想要: “the” [“quick”,”brown”,”fox”] ..在两个不同的变量。 第一个变量应该是一个字符串,第二个变量应该是一个数组。 我正在寻找一种优雅的方式(最好用Java)。
我正在尝试编写需要使用Java中的Graphics2D类绘制许多字符串的应用程序。 我需要获取每个String对象的大小(以计算每个字符串的确切位置)。 在调用paint()方法之前应该完成很多字符串,在程序开始时只执行一次(所以我还没有Graphics2D对象)。 我知道有一个方法Font.getStringBounds()但它需要一个FontRenderContext对象作为参数。 当我试图创建自己的对象时: FontRenderContext frc = new FontRenderContext(MyFont.getTransform(), true, true) 然后获取字符串边界我总是得到不同的大小比我在paint()方法中使用Graphics2D.getFontRenderContext()方法获取FontRenderContext时的大小。 差异不大(约1E-3),但我想知道为什么会有什么不同? 但是,有没有更好更安全的方法来获取字符串的大小? Thnx提前提供任何帮助!
我有一个家庭作业分配来计算字符串中的特定字符。 例如: string = “America” 输出应为= a appear 2 times, m appear 1 time, e appear 1 time, r appear 1 time, i appear 1 time and c appear 1 time public class switchbobo { /** * @param args */ // TODO Auto-generated method stub public static void main(String[] args){ String s = “BUNANA”; String […]
将char[]转换为CharSequence的最直接和/或最有效的方法是什么?
为什么在下面,输出是[]而不是[1] ? String input=”1|2|3″; String[] values= input.split(“|”); System.out.println(“[” + values[0] + “]”); // Output: [] 但是,如果我们更改分隔符,则输出为[1] 。 String input=”1;2;3″; String[] values= input.split(“;”); System.out.println(“[” + values[0] + “]”); // Output: [1]
我有一个代码,我想根据正斜杠“/”进行拆分。 每当我有一个基于“////”的正则表达式分割时,它就永远不会分裂并给我整个字符串。 我尝试用文件分隔符替换,它给出了“\”,然后用“\\”分割,但不是下面的代码。 以下是测试的代码 package org.saurav.simpletests.string; import java.io.File; public class StringManipulator { public static void main(String a[]){ String testString =”/UserId/XCode/deep”; //testString = testString.replace(“/”, File.separator); //testString = testString.replace(“/”, “_”); testSplitStrings(testString); } /** * Test the split string * @param path */ public static void testSplitStrings(String path){ System.out.println(“splitting of sprint starts \n”); String[] paths = path.split(“////”); for […]
目前我正在使用字符串操作,在做演示时我发现了一些不同的行为。 以下是我的代码。 public class HelloWorld{ public static void main(String []args){ String str1 = “Hello”; String str2 = “Hello”; String str3 = new String(“Hello”); String strArray[] = {“Hello”,”Hello”}; String strArray1[] = new String[] {“Hello”,”Hello”}; System.out.println(“str1==str2:: “+(str1==str2)); System.out.println(“str1==str3:: “+(str1==str3)); System.out.println(“strArray[0]==strArray[1]:: “+(strArray[0]==strArray[1])); System.out.println(“str1==strArray[1]:: “+(str1==strArray[1])); System.out.println(“strArray1[0]==strArray1[1]:: “+(strArray1[0]==strArray1[1])); System.out.println(“str1==strArray1[1]:: “+(str1==strArray1[1])); System.out.println(“args[0]==args[1]:: “+(args[0]==args[1])); } } 并且上面的代码是。 我正在运行代码传递命令行参数。 java HelloWorld Hello Hello […]
我试图了解编译器如何查看以下print语句。 这很简单但有点吸引人。 这将打印添加的值。 足够令人信服。 的System.out.println(1 + 2); //输出:3 以下输出看起来也很有说服力: System.out.println(1 + 2 +“3”); //输出:33 我的问题(基于上述行为)就在这里。 System.out.println(“1”+ 2 + 3); //应该是15对吗? 没有。 这是123。 我尝试了其他一些类似的陈述。 我能够看到两个明确的行为。 如果整数位于前面而没有引号,则会添加它们,并且后续整数仅作为后缀添加到前面添加的值中。 如果语句以字符串开头,则在引号下,则所有其他后续元素将作为后缀附加。 这是java api文档中的某个地方吗? 或者只是非常明显的字符串或添加操作员行为,我没有看到。 任何您宝贵的见解将不胜感激。 这是代码片段: public static void main(String[] args) { System.out.println(1+2); System.out.println(1+2+”3″); System.out.println(“1″+2+3); System.out.println(“1″+2+”3”); System.out.println(“1″+2); } // The Console output: // 3 // 33 // 123 // 123 […]