如何在java中使用indexOf(int ch)

时间:2012-09-08 23:22:22

标签: java string indexof

我正在尝试获取字符串中字符的索引号,以将字符串分成子字符串。示例:我想转:

String book1 = "green eggs and ham, usa, dr. seuss";

成:

green eggs and ham
usa
dr. seuss

这必须适用于不同长度的字符串。基本上,如果我使用不同的单词,它仍然有用。

我需要帮助理解indexOf()方法以获取要放入子字符串的逗号索引。

我在indexOf之后尝试在方法调用中使用变量,当我使用除int之外的任何东西时我都会遇到错误。

3 个答案:

答案 0 :(得分:5)

我不太确定你的实际要求,但你有很多选择可以尝试:

  • 使用split(String)方法拆分字符串并将其存储为String
  • 数组
  • 在特定分隔符上使用StringTokenizer 标记化您的字符串,并使用nextToken()获取令牌。 (请注意,StringTokenizer是一个遗留类,出于兼容性原因而保留,但在新代码中不鼓励使用
  • 第三个选项是使用Pattern
  • 使用正则表达式

选择哪种适用于您的要求。

答案 1 :(得分:3)

使用拆分。

"green eggs and ham, usa, dr. seuss".split(", ");

请参阅:String.split

答案 2 :(得分:0)

如果您被允许使用它,split()方法正是您所需要的。

否则,如果您只需要使用indexOf(),请查看Java API documentation for String API以了解其工作原理。我注意到的第一件事是indexOf()有三种不同版本:indexOf(int)indexOf(int, int)indexOf(String)。我相信其中第二个最适用于这个问题。由于文档声明此版本的indexOf()“返回指定字符第一次出现的字符串中的索引,从指定索引处开始搜索,”您很可能需要某种循环按顺序找到角色的每一个出现次数。