java - 如何使用 StringTokenizer 计算行数、标记、整数 # 并获取整数总和?
问题描述
我对编程很陌生。此代码尝试计算行数、标记、整数的数量,并在单独的文件中获取整数的总和。
import java.util.StringTokenizer;
import java.BufferedReader;
import java.util.Scanner;
public class mcmahon_p1
{
public static void main (String[] args)
{
if(args.length == 0)
{
System.out.println("Please enter a command line argument.");
}
try
{
java.io.BufferedReader input = new
java.io.BufferedReader(newjava.io.InputStreamReader(new java.io.FileInputStream(args[0])));
String inn;
while( (inn = input.readLine()) != null)
{
int lineCount++;
inn = inn.toLowerCase();
java.util.StringTokenizer st = new java.util.StringTokenizer(inn);
while(st.hasMoreTokens())
{
int tokenCount++;
String token = st.nextToken();
try
{
int v = integer.parseInt(token);
int intCount++;
double intSum +=v;
}
catch(Exception e)
{
}
}
}
System.out.println(lineCount);
System.out.println(tokenCount);
System.out.println(intCount);
System.out.println(intSum);
}
catch(Exception e)
{
System.out.println(e.toString());
System.exit(0);
}
}
}
我收到此错误:
mcmahon_lab1.java:21: error: ';' expected
int lineCount++;
^
mcmahon_lab1.java:27: error: ';' expected
int tokenCount++;
^
mcmahon_lab1.java:33: error: ';' expected
int intCount++;
^
mcmahon_lab1.java:34: error: ';' expected
double intSum +=v;
^
mcmahon_lab1.java:34: error: not a statement
double intSum +=v;
解决方案
如果我正确理解了您的答案,您的文件应如下所示:
10
34
59
62
93
你的程序的输出应该是这样的:
Line count: 5
Integer count: 5
Sum of integers: 258
所以在这种情况下你可以使用StringTokenizer
,但我不明白这个东西:在这种文件格式中,行数等于整数数,但我们可以计算行数:
int lines = 0;
int sum = 0;
StringTokenizer tokenizer = new StringTokenizer(stringToCheck, "\n");
while(tokenizer.hasMoreTokens()) {
lines++;
sum += Integer.parseInt(tokenizer.nextToken());
}
System.out.println("Line count: " + lines);
System.out.println("Sum of integers: " + sum);
如果我理解错了你的答案,请在评论中回答:)
推荐阅读
- php - PHP - 在 mysqli 查询中使用数组
- git - Git状态命令-未跟踪文件下的整台计算机
- spring - Spring Security HTTP 403 禁止
- javascript - 在 html 表单上提交打开模式,将数据传递给他
- c# - 通过命令行c#运行测试用例
- swift - 如何将数据插入此字典 - Swift 4
- javascript - $slider.css({'transform' : 'translateY(' + (-$height * $counter) + 'px)'})
- codeigniter - 如何在更改事件下拉列表中添加前缀代码
- google-sheets - Google 表格 IF、ISNUMBER、SUM 公式
- r - 替换变量中的一些元素