我正在编写一些代码,用于从文本文件中读取输入并打印出令牌及其标签。然而,我遇到了一个问题。如果代码以字母形式读取,理想情况下应检查下一个字符以查看它是否是另一个字母或特殊字符,例如:
abcde=123;
如何告诉程序向前看并查看下一个字符是否是另一个字母,等号,数字等。 现在,在if语句中是否有任何方式说'如果下一个字符不是字母,打印“= TEXT \ n”,否则继续'?
如果这个问题混淆,我很抱歉(这是凌晨1点),我会提供更多信息。谢谢。
答案 0 :(得分:0)
您可以检查下一个字符是否不是数字。查看Character API。它有一个方法isDigit()。基本上,如果下一个字符不是数字,则它可以是特殊字符,空格或字母。
希望这对你有所帮助!
答案 1 :(得分:0)
非常简单,使用Character.isLetter(character)
方法。如果参数是字母,则此方法将返回true
,如果不是,则返回false
。
答案 2 :(得分:0)
首先,我会回答你的问题,但然后提供我认为更好的方法来完成你正在做的事情。
如果您将Reader包装在BufferedReader中,您可以标记您所在的位置,获取下一个字符并重置以跳回到前一个字符,以便在下一次迭代时您将再次读取该字符:
BufferedReader br = new BufferedReader(reader);
br.mark(1);
int firstByte = br.read();
br.reset();
实现此目的并避免不得不向前看的另一种方法是将每个字符附加到StringBuilder。然后,当您需要整个数字,因为您点击了非数字时,您在StringBuilder中拥有整个数字。如果您重新使用相同的StringBuilder并在需要时清除它,那么这应该是有效的。
答案 3 :(得分:0)
除了其他答案之外,Java还有一个PushbackInputStream类。有时,这正是处理前瞻型问题所需要的。