如何查找单词中特定字符的编号?

时间:2013-07-06 13:13:22

标签: java string for-loop char string-length

我正在尝试创建一个程序,每当找到一个字符(用于检查'a')时,它会打印它并移动到下一个字符进行检查。继续这样做直到word.length结束。 这是我到目前为止所做的,但不起作用,

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.print("Enter a word: ");
    String word = in.next();
    String a = "a";
    int i;
    char found = 0;
    char F;

    for (i = 0; i < word.length(); i++)
    {
        F = word.charAt(i);

        if (F == found)
        {
            System.out.println(i);
        }

    }


}

3 个答案:

答案 0 :(得分:1)

尝试

       Scanner in = new Scanner(System.in);
        System.out.print("Enter a word: ");
        String word = in.next();
        Pattern p=Pattern.compile("a");
        Matcher matcher=p.matcher(word);
        boolean b=false;
        while(b=matcher.find())
        {
            System.out.println(matcher.start()+"");
        }

修改

Pattern.compile(“a”);

Compiles the given regular expression into a pattern

<强> p.matcher(字);

Creates a matcher that will match the given input against this pattern. 

如果您想搜索aba之类的源字符串,那么对于所有出现的表达式a,它会像

一样
source:aba
index:012

我们可以看到表达式a的两个出现:一个从位置0开始,第二个从2开始。所以输出是0 2

答案 1 :(得分:1)

试试这个

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.print("Enter a word: ");
    String word = in.next();        
    char F;

    for (int i = 0; i < word.length(); i++) {
        F = word.charAt(i);
        if (F == 'a') {
            System.out.println(i);
        }
    }
}

答案 2 :(得分:0)

使用这个简单的

 string.indexOf("a");