我正在尝试创建一个Java程序,它可以从扫描程序中找到指定的字母。我可以使用findWithinHorizon来执行此操作吗?如果是,请执行此操作?
答案 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;
}
有更好的方法来计算一个字母。你有什么暗示吗?
编辑这里实际上是使用findWithinHorizon
public int fromScanner2(Scanner scanner, String letter){
int result = 0;
String resultS = null;
while( (resultS = scanner.findWithinHorizon(letter, 0)) !=null ){
++result;
}
return result;
}
现在这种方法有点不直观(至少对我来说)。当您使用它并且实际发现某些事件时,Scanner内部有一个整数,用于跟踪上次找到的位置。在下一次搜索中,它将使用此位置搜索从它开始