如何在java中查看字符串是否包含特定的字符?

7ivaypg9  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(285)

这个问题在这里已经有答案了

在扫描仪中返回包含字符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
}
rwqw0loc

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不会出现。

qzwqbdag

qzwqbdag2#

char不是charsequence

你的电话 String::contains 需要一个 CharSequence 例如 String 当你路过一个 char . 两种不同的类型。
使用双引号而不是单引号 < 得到一个 String 对象而不是 char 原语: "<"'<' .

boolean containsLessThan = input.contains( "<" ) ;

如果您的目标只是删除这些字符,请使用 String::replace .

String result = input.replace( "<" , "" ).replace( ">" , "") ;

仅供参考 char 类型已过时,无法表示unicode中定义的一半字符。
下面是我创建的一个图表,显示了与java绑定的各种与文本相关的类。 String 是实现 CharSequence 接口。这个 char 这里不包括类型,因为它是(a)原语而不是类,(b)过时的。

顺便说一句,推荐阅读:绝对最低每一个软件开发人员绝对,肯定必须了解unicode和字符集(没有借口!)

相关问题