如何在Java中检查是否已到达字符串的末尾?

7
我不想按照正式方式使用for循环遍历整个字符串“特定次数”(字符串长度)。在Java中是否有像C语言中那样在每个字符串的末尾始终存在的字符?

文件中的行尾还是字符串的结尾? - ChadNC
你是指行末吗?比如说如果在同一个字符串中有多行? - Hans Z
4个回答

8
您有两个基本选项:
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()方法来确定字符串的长度。


你需要使用length()方法来找出一个字符串的长度。-- 不需要 - aioobe
3
我知道你有其他选项来获取字符串的长度,就像你不需要Java编译器一样,你可以手动编写字节码,但使用Str.length()简单易行,对于初学者来说,这样做是简单易懂的,为什么要让他们感到困惑呢? - Ewald

4

在Java中是否有像C语言一样,每个字符串的末尾都有一个特殊字符?

不,Java中的字符串并不是这样工作的。

我不想使用循环遍历字符串的所有元素(即字符串长度)的正统方式。

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

yourString += '\0';

但要注意,yourString 中间可能也包含 \0 字符。

如果您正在遍历字符串中的字符,您也可以这样做:

for (char c : yourString.toCharArray())
    process(c);

0

System.getProperty("line.separator"); 这将告诉您操作系统独立的换行符。 您可以将字符串的字符与此新行字符进行比较。


0
String[] splitUpByLines = multiLineString.split("\r\n");

将返回一个由String数组组成的结果,每个元素代表多行字符串中的一行。


1
不要认为这是OP想要的。他可能期望像C语言中那样以NUL结尾的字符串。 - nhahtdh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接