【发布时间】:2012-01-16 04:44:20
【问题描述】:
我是一位经验丰富的 C++ 程序员,但对 Java 不熟悉。
我有一个算法可以进行一些字符串操作,我想在中间终止一个字符串。
说,我想做这样的事情
String str("hello, world");
char[] str2 = str.toCharArray();
//pass str2 to some function
myFunc(str2);
...
//inside myFunc, I decide to terminate str2 at position 3, so I did
//str2[3] = 0
//then it returns, how can I construct an String type variable from str2 that includes chars before the '\0'?
//String str3 = new String(str2), doesn't work
我可以编写自己喜欢的 C 语言 strlen。但是我想知道用 Java 做这件事的优雅方式是什么。
此外,很难找到关于类型char[] 的文档。每当我谷歌时,我只能在“char”而不是“char[]”上找到文档。我在想 char[] 可能有喜欢substr 或strlen 的方法。
感谢您的任何建议!
【问题讨论】:
-
Java 中的字符串是不可变的。你不能修改它们。它们也没有终止字符。它们也与
char类型的数组无关。 -
请特别注意,\0 是 Java 字符串中的合法字符!
-
欧内斯特,感谢您的指出。
标签: java c++ arrays string char