如何使用findWithinHorizo​​n查找字母中出现的字母数次?

时间:2013-04-29 11:53:27

标签: java

我正在尝试创建一个Java程序,它可以从扫描程序中找到指定的字母。我可以使用findWithinHorizo​​n来执行此操作吗?如果是,请执行此操作?

2 个答案:

答案 0 :(得分:2)

试试这个

    Scanner sc = new Scanner("xxyyxxy");
    for (int n = 0;; n++) {
        String s = sc.findWithinHorizon("y", 0);
        if (s == null) {
            System.out.println(n);
            break;
        }
    }

输出

3

答案 1 :(得分:1)

如果使用扫描仪,则表示 java.util.Scanner

    public int fromScanner(Scanner scanner, String letter){
    scanner.useDelimiter(letter);
    int howMany = 0;
    while(scanner.hasNext()){
        scanner.next();
        ++howMany;
    }
    if(howMany>0)++howMany;
    return howMany;
}

有更好的方法来计算一个字母。你有什么暗示吗?

编辑这里实际上是使用findWithinHorizo​​n

 public int fromScanner2(Scanner scanner, String letter){ 
      int result = 0;
      String resultS = null;
      while( (resultS = scanner.findWithinHorizon(letter, 0)) !=null ){
           ++result;
      }
      return result;
 }

现在这种方法有点不直观(至少对我来说)。当您使用它并且实际发现某些事件时,Scanner内部有一个整数,用于跟踪上次找到的位置。在下一次搜索中,它将使用此位置搜索从它开始