查找字符串中字符的位置
Posted
技术标签:
【中文标题】查找字符串中字符的位置【英文标题】:Find Positions of a Character in a String 【发布时间】:2013-10-19 07:16:11 【问题描述】:如何在String
中找到一个字符并在整个字符串中打印字符的位置?例如,我想在这个字符串中找到'o'
的位置:"you are awesome honey"
并得到答案=1 12 17
。
我写了这个,但它不起作用:
public class Pos
public static void main(String args[])
String string = ("You are awesome honey");
for (int i = 0 ; i<string.length() ; i++)
if (string.charAt(i) == 'o')
System.out.println(string.indexOf(i));
【问题讨论】:
如果您需要代码,您需要编辑您的问题以添加一个标签,告诉我们您正在使用哪种语言/环境。另外,您自己尝试过吗?如果是这样,请也添加。 我正在编辑我的问题,这种格式是这样的吗? 【参考方案1】:从第一个字符开始,遍历所有字符直到结束。在每一步测试字符是否是'o'。如果是则打印位置。
【讨论】:
【参考方案2】: static ArrayList<String> getCharPosition(String str, char mychar)
ArrayList<String> positions = new ArrayList<String>();
if (str.length() == 0)
return null;
for (int i = 0; i < str.length(); i ++)
if (str.charAt(i) == mychar)
positions.add(String.valueOf(i));
return positions;
String string = ("You are awesome honey");
ArrayList<String> result = getCharPosition(string, 'o');
for (int i = 0; i < result.size(); i ++)
System.out.println("char position is: " + result.get(i));
输出:
char position is: 1
char position is: 12
char position is: 17
【讨论】:
谢谢,它也可以工作,但我不喜欢使用数组。我找到了答案,但非常感谢您的帮助:)【参考方案3】:你几乎是对的。问题是你的最后一行。你应该打印i
而不是string.indexOf(i)
:
public class Pos
public static void main(String args[])
String string = ("You are awesome honey");
for (int i = 0 ; i<string.length() ; i++)
if (string.charAt(i) == 'o')
System.out.println(i);
【讨论】:
非常感谢您的帮助,它的工作:) :X @RastinRadvar 当一个答案对你有用时,你应该接受它。 谢谢老兄,完成了。我是新来的,不知道如何工作。我很快就会发现一切,再次感谢您的帮助:)【参考方案4】:在 Java 中:
String s = "you are awesome honey";
char[] array = s.toCharArray();
for(int i = 0; i < array.length; i++)
if(array[i] == 'o')
System.out.println(i);
【讨论】:
【参考方案5】:这是查找字符串中特定字符的所有位置的函数
public ArrayList<Integer> findPositions(String string, char character)
ArrayList<Integer> positions = new ArrayList<>();
for (int i = 0; i < string.length(); i++)
if (string.charAt(i) == character)
positions.add(i);
return positions;
然后使用它
ArrayList<Integer> result = findPositions("You are awesome honey",'o');
// result will contains 1,12,17
【讨论】:
以上是关于查找字符串中字符的位置的主要内容,如果未能解决你的问题,请参考以下文章