这个问题在这里已经有答案了:
在扫描仪中返回包含字符c的字符串(2个答案)
上个月关门了。
我想看看字符串中是否包含特定字符。例如,给定文本文件:
I am going to the store.
I will be at <area>.
I need to buy <item>.
我试图让我的程序逐行扫描文本,并检测“<”和“>”的任何示例。这样它就可以删除这些内容,并在控制台中提示用户输入“区域”或“项目”。我的当前代码块如下:
Scanner sc = new Scanner(f);
while(sc.hasNextLine()) {
String info = sc.nextLine();
if(info.contains('<')) /// this is where I am stuck! Contains() doesn't seem to work on a single char
}
2条答案
按热度按时间rwqw0loc1#
你可以用
info.indexOf('<')
它返回此对象所表示的字符序列中第一个出现的字符的索引,如果该字符没有出现,则返回-1。所以这就是你的代码:
if(info.indexOf('<') > -1)
强烈建议:请先搜索足够的内容和/或阅读正确的文档,以了解您正在使用的代码的每一部分,或每次遇到问题时。问问题是你最后的选择。这正是你所要求的,例如:https://stackoverflow.com/questions/506105/how-can-i-check-if-a-single-character-appears-in-a-string#:~:text=您%20可以%20使用%20字符串,%20字符%20不会出现。
qzwqbdag2#
char不是charsequence
你的电话
String::contains
需要一个CharSequence
例如String
当你路过一个char
. 两种不同的类型。使用双引号而不是单引号
<
得到一个String
对象而不是char
原语:"<"
与'<'
.如果您的目标只是删除这些字符,请使用
String::replace
.仅供参考
char
类型已过时,无法表示unicode中定义的一半字符。下面是我创建的一个图表,显示了与java绑定的各种与文本相关的类。
String
是实现CharSequence
接口。这个char
这里不包括类型,因为它是(a)原语而不是类,(b)过时的。顺便说一句,推荐阅读:绝对最低每一个软件开发人员绝对,肯定必须了解unicode和字符集(没有借口!)