7

我不想通过使用for遍历字符串所有元素的循环来以正式的方式执行“特定次数”(字符串长度)。

是否有任何字符始终位于 Java 中每个字符串的末尾,就像它在 c 中一样?

4

4 回答 4

7

您有两个基本选择:

String myString = "ABCD";
for (char c : myString.toCharArray())
{
  System.out.println("Characer is " + c);
}

for (int i = 0; i < myString.length(); i++)
{
  System.out.println("Character is " + myString.charAt(i));
}

第一个循环遍历字符数组,第二个循环使用普通索引循环。

然而,Java 确实支持像 '\n' (新行)这样的字符。如果要检查此字符是否存在,可以使用 indexOf('\n') 方法,该方法将返回字符的位置,如果找不到,则返回 -1。请注意,'\n' 字符不需要能够结束一个字符串,所以你不能单独依赖它。

Java 中的字符串没有 C 中的 NULL 终止符,因此您需要使用 length() 方法来找出字符串的长度。

于 2012-06-14T13:32:33.693 回答
4

是否有任何字符始终位于 java 中每个字符串的 tnd 中,就像它在 c 中一样?

不,这不是 Java 字符串的工作方式。

我不想通过使用遍历字符串所有元素的 for 循环来以正式的方式执行“特定次数”(字符串长度)。

那么唯一的选择可能是附加您自己的特殊字符:

yourString += '\0';

(但要注意中间yourString也可能包含;-)\0

如果您正在迭代字符串中的字符,您也可以这样做

for (char c : yourString.toCharArray())
    process(c);
于 2012-06-14T13:31:16.567 回答
0
String[] splitUpByLines = multiLineString.split("\r\n");

将返回一个 s 数组String,每个代表多行字符串的一行。

于 2012-06-14T13:30:53.787 回答
0

System.getProperty("line.separator"); 这将告诉您与操作系统无关的换行符。您可能可以根据该字符检查字符串的new line字符。

于 2012-06-14T13:36:41.430 回答