-1

我正在尝试制作一个程序,只要找到一个字符(用于检查'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);
        }

    }


}
4

3 回答 3

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(word);

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

如果您想像abathen 那样搜索所有出现的表达式的源字符串a,它会像

source:aba
index:012

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

于 2013-07-06T13:26:50.613 回答
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);
        }
    }
}
于 2013-07-06T13:37:57.607 回答
0

使用这个简单

 string.indexOf("a");
于 2013-07-06T13:16:44.277 回答