我正在尝试创建一个从扫描仪中查找指定字母的 Java 程序。我可以使用 findWithinHorizon 来执行此操作吗?如果可以,如何操作?
问问题
1083 次
2 回答
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
于 2013-04-29T12:10:37.053 回答
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 内部有一个整数,用于跟踪上次找到的位置。并且在下一次搜索中,它将使用这个位置从它开始搜索
于 2013-04-29T11:59:50.693 回答