Tag: string

使用StringTokenizer和String.split()之间的区别?

我一直在使用String[] split(String)的String类来拆分某个给定分隔符的任何字符串,并且它工作正常。 但是,现在预计会使用StringTokenizer重新考虑相同的逻辑。 但是使用一个而不是另一个有什么区别和好处。 另外,我觉得在单个调用中split()返回的String[]比使用StringTokenizer类的对象更有效。

Ascii Art – Java

我想制作一个程序,用户输入他们的名字,程序会生成一个他们名字的ascii图片。 是否可以在不使用第三方工具的情况下实现这一目标? 我想出的是手动创建字母表中的每个字母,然后将字符串转换为char数组。 然后返回与该字母对应的每个图像。 这样做有更好或更有效的方法吗? 谢谢。

有没有一种简单的方法可以在Java中将String转换为Inetaddress?

我正在尝试将字符串转换为Inetaddress 。 我不是要解析主机名:字符串是ipv4地址。 InetAddress.getByName(String host)是否有效? 或者我必须手动解析它?

CLR / JVM是否为所有正在运行的.net / java应用程序保留一个单一的实习池?

以下是MSDN的摘录: 公共语言运行库通过维护一个名为intern pool的表来保存字符串存储,该表包含对程序中以编程方式声明或创建的每个唯一文字字符串的单个引用。 因此,具有特定值的文字字符串实例仅在系统中存在一次。 例如,如果将相同的文字字符串分配给多个变量,则运行时将从实习池中检索对文字字符串的相同引用,并将其分配给每个变量。 Intern方法使用实习池来搜索等于str值的字符串。 如果存在此类字符串,则返回其在实习池中的引用。 如果该字符串不存在,则将对str的引用添加到实习池中,然后返回该引用。 ….如果您正在尝试减少应用程序分配的内存总量,请记住,实习字符串有两个不需要的副作用。 首先,在公共语言运行时(CLR)终止之前,不太可能释放为被占用的String对象分配的内存。 那么,这是否意味着CLR为所有正在运行的.net应用程序保留一个单一的实习池? 示例:如果程序A创建字符串文字“Test”,并且如果另一个程序尝试创建另一个字符串文字“Test”,则使用相同的副本? 同样的问题也适用于JVM。

哪个调试工具可以列出内部化的字符串?

我正在寻找一个可以列出已经内化的字符串的调试工具? 理想情况下,我想添加一个标记并列出在该标记之后添加的字符串列表。 提前致谢。

用单反斜杠替换双反斜杠

我有一个字符串“\\ u003c”,它属于UTF-8字符集。 由于存在双反斜杠,我无法将其解码为unicode。 我如何从“\\ u003c”获得“\ u003c”? 我正在使用java。 我试过了, myString.replace(“\\\\”, “\\”); 但无法实现我想要的。 这是我的代码, String myString = FileUtils.readFileToString(file); String a = myString.replace(“\\\\”, “\\”); byte[] utf8 = a.getBytes(); // Convert from UTF-8 to Unicode a = new String(utf8, “UTF-8”); System.out.println(“Converted string is:”+a); 和文件的内容是 \ u003c

如何检测String.substring是否复制字符数据

我知道对于Oracle Java 1.7更新6及更高版本,当使用String.substring ,会复制String的内部字符数组,对于旧版本,它将被共享。 但我发现没有官方API会告诉我当前的行为。 用例 我的用例是:在解析器中,我喜欢检测String.substring复制还是共享底层字符数组。 问题是,如果共享字符数组,那么我的解析器需要使用new String(s)显式“取消共享”以避免内存问题。 但是,如果String.substring仍然复制数据,那么这不是必需的,并且可以避免在解析器中显式复制数据。 使用案例: // possibly the query is very very large String query = “select * from test …”; // the identifier is used outside of the parser String identifier = query.substring(14, 18); // avoid if possible for speed, // but needed if identifier internally // references […]

字符数组的每个组合

尝试显示数组字符的每个组合而不重复字母时遇到问题。 public static String[] getAllLists(String[] elements, int lengthOfList) { //initialize our returned list with the number of elements calculated above String[] allLists = new String[(int)Math.pow(elements.length, lengthOfList)]; //lists of length 1 are just the original elements if(lengthOfList == 1) return elements; else { //the recursion–get all lists of length 3, length 2, all the way up […]

如何从java字符串中删除控制字符?

我有一个来自UI的字符串,可能包含控制字符,我想删除除回车符 , 换行符和制表符之外的所有控制字符。 现在我可以找到两种方法来删除所有控制字符: 1-使用番石榴: return CharMatcher.JAVA_ISO_CONTROL.removeFrom(string); 2-使用正则表达式: return string.replaceAll(“\\p{Cntrl}”, “”);

是否有Java实用程序将转换String路径以使用正确的文件分隔符char?

我开发了许多用Java操作文件的类。 我正在开发一个Linux机器,并且幸福地键入了new File(“path/to/some/file”); 。 当提交时,我意识到该项目的其他一些开发人员正在使用Windows。 我现在想调用一个方法,该方法可以接受”/path/to/some/file”forms的字符串,并根据操作系统返回正确分隔的路径。 例如: 在Windows上, “path/to/some/file”成为”path\\to\\some\\file” 。 在Linux上它只返回给定的String。 我意识到不会花很长时间来敲定一个可以做到这一点的正则表达式,但我不打算重新发明轮子,并且更喜欢经过适当测试的解决方案。 如果将它内置到JDK中会很好,但是如果它是一些小型F / OSS库的一部分也很好。 那么是否有一个Java实用程序将转换String路径以使用正确的文件分隔符char?