hasMoreTokens
时间: 2024-01-07 17:04:28 浏览: 21
hasMoreTokens是Java中StringTokenizer类的一个方法,用于检查在给定字符串中是否还有更多的标记(tokens)可用。
StringTokenizer类用于将一个字符串分割成多个标记(tokens),默认情况下使用空格作为分隔符。hasMoreTokens方法返回一个boolean值,如果在当前字符串中还有未处理的标记,则返回true,否则返回false。这个方法通常与nextToken方法一起使用,用于迭代处理所有的标记。
相关问题
import java.util.StringTokenizer; public class Demo7 { public static void main(String args[]) { String s = "I am Wanglin,she is my friend,she is a student"; StringTokenizer fenxi = new StringTokenizer(s, "h"); int n = fenxi.countTokens(); while (fenxi.hasMoreTokens()) { String s1 = fenxi.nextToken(); // System.out.print(s1 + " "); } System.out.println("count=" + n); }
这是一个Java程序,主要使用了StringTokenizer类来对一个字符串进行分词操作。具体的实现过程如下:
1. 首先定义一个字符串s,其中包含了一些英文句子和逗号等符号。
2. 接着使用StringTokenizer类来对字符串s进行分词,其中第一个参数是要进行分词的字符串,第二个参数是用来指定分隔符的字符串。在这个例子中,我们使用字母"h"作为分隔符。
3. 使用countTokens方法获取分词后的总数。
4. 使用hasMoreTokens方法和nextToken方法来遍历分词后的结果,将每个分词字符串输出。
5. 最后输出分词的总数。
这个程序的输出结果应该是:
I am Wanglin,s
e is my friend,s
e is a student
count=3
其中,分词的结果为3个字符串,分别是"I am Wanglin,s"、"she is my friend,s"、"she is a student"。
补全代码:nalysisResult.javaimport java.io.*;import java.util.*;public class AnalysisResult { public static void main(String args[]) { //使用循环按行读取文件 //调用Fenxi.getTotalScore()获取解析出的总成绩,并写入scoreAnalysis.txt中 }}Fenxi.javaimport java.util.*;public class Fenxi { public static double getTotalScore(String s) { String regex="[^0123456789]" ; //匹配非数字的正则表达式 String digitMess=s.replaceAll(regex,"*"); StringTokenizer fenxi = new StringTokenizer(digitMess,"*"); double totalScore=0; while(fenxi.hasMoreTokens()){ double score = Double.parseDouble(fenxi.nextToken()); //累加 totalScore } return totalScore; }}
import java.io.*;
import java.util.*;
public class AnalysisResult {
public static void main(String args[]) {
try {
File file = new File("score.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
double totalScore = 0;
while ((line = bufferedReader.readLine()) != null) {
totalScore += Fenxi.getTotalScore(line);
}
bufferedReader.close();
FileWriter fileWriter = new FileWriter("scoreAnalysis.txt");
fileWriter.write("总成绩:" + totalScore);
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.util.*;
public class Fenxi {
public static double getTotalScore(String s) {
String regex = "[^0123456789]";
String digitMess = s.replaceAll(regex, "*");
StringTokenizer fenxi = new StringTokenizer(digitMess, "*");
double totalScore = 0;
while (fenxi.hasMoreTokens()) {
double score = Double.parseDouble(fenxi.nextToken());
totalScore += score;
}
return totalScore;
}
}