【问题标题】:How to get a character index in a string [closed]如何获取字符串中的字符索引[关闭]
【发布时间】:2016-04-06 17:11:09
【问题描述】:

我想在java.lang.String 中获取字符索引。因此,例如,我想在"0123456789" 字符串中找到'2' 字符索引(索引将为2)。 String 类中有什么方法可以用来做这个,或者简单的代码?

感谢您的回答!

【问题讨论】:

  • 请更具体a 中的字母 String 是什么?你试过什么?
  • 好的,@ElliottFrisch 我编辑答案。
  • 目前还不清楚。您可以只使用charAt,但是...您实际上要解决什么问题?获得第一个a?得到 any a?获得第二个角色?等等。
  • s.charAt(1) 将返回'a',这是“获取”的一种方式,但这很可笑,因为获取它的意义何在?您的意思是“如何找到”吗?如果你这样做了,那么s.indexOf('a') 就是答案。

标签: java string


【解决方案1】:

您可以遍历字符串并查找您要寻找的字符。

只需像这样使用 for 循环:

String test = "I want to test something";
for(int i=0;i<test.length;i++) {
  char t = test.charAt(i);
  // do something with char
}

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#charAt%28int%29

【讨论】:

  • indexOf() 会更容易。
  • @Andreas 您的解决方案仅找到一个字符 a。如果有人想做更多,我会采用一般方法,然后进行比较。当然你可以选择indexOf,但缺点是只能得到一个值。如果您有多个“a”字符,那么每次您想进一​​步查看时都必须遍历并添加indexOf('a', startIndex)
  • 是的,问题写得很弱,但它确实说“得到a字符”,暗示只需要一个字符。当然,它应该说“find a character”,所以也许它的真正意思是“find all instance of a certain character”,在这种情况下,你的答案会做到完美。
【解决方案2】:

如果 'a' 不在此字符串中,index 将为 -1。

请注意,此代码只会找到此字符串中的第一个 'a'。如果您需要查找字符的多个位置,则使用另一个答案中的解决方案循环遍历字符串。

String str = "there is a letter";

int index = str.indexOf('a');

【讨论】:

  • 谢谢,我已经解决了!
猜你喜欢
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 2016-07-09
  • 2011-01-25
  • 2014-12-02
  • 2012-06-29
  • 1970-01-01
  • 2020-11-17
相关资源
最近更新 更多