【问题标题】:String and char in Java [duplicate]Java中的字符串和字符[重复]
【发布时间】:2014-03-25 12:07:45
【问题描述】:

如何获取一个字符的返回值,并检查该字符是否包含在字符串中?有人告诉我,我应该能够按原样使用字符,而无需转换为字符串。所以我有类似的东西:

String answer = "JAVA IS THE BEST";
char guess = getUserInput(); //Returns a char
if (answer.contains(Character.toString(guess))){
    //DO SOMETHING
}

有人告诉我这是“不正确的”,应该能够按原样处理 char 返回值?!

谢谢

【问题讨论】:

  • 对不起,但这不是 StackOverflow 的工作方式。您必须在研究、发布您尝试过的代码、解释为什么它不起作用以及提出具体问题方面表现出努力。
  • 我研究过。我只是错过了一些关于char如何与String交互而无需使用String.valueOf()之类的东西进行转换的关键点。我也看到了那个帖子,它对我没有帮助。
  • 请阅读链接...
  • 好的,谢谢。我读了。我使用了类似 String.contains(Character.toString(c)) 的东西,并被告知它“不正确”并且我应该能够按原样使用 char 值?所以要么我错了,要么告诉我的人是......
  • 你显然没有读过。查看接受的答案。

标签: java


【解决方案1】:

你可以使用:str.contains(Character.toString(ch));

由于不想把char转成string,所以可以把string转成char数组,遍历数组来搜索字符。

 char[] strChars = str.toCharArray();
 for(char val : strChars)
 {
   if(val == ch)
    {
     // do something
    }
 }

【讨论】:

  • String#contains(CharSequence) 接受 CharSerquence,而不是 char
  • 我有一个 char 而不是 CharSequence,因为 String 方法包含需要。
  • @SotiriosDelimanolis 非常感谢您指出这一点。我已经做出了适当的更改
  • @tameanaka 我已经更正了,试试这个,让我们知道这是否适合你
  • 再一次,OP 不想使用 String.valueOf(..)Character.toString(..) 之类的东西。
猜你喜欢
  • 2012-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多