读取一个TXT格式的文本文档离得内容,计算里面有多少个数字和数字的和。
while 的这个loop应该怎么写啊?
import java.util.Scanner;
import java.io.*;public class CountingAndSumming { public static void main(String[] args) {
String fileName = "input.txt";
Scanner fileScan = new Scanner(new File(fileName));
int sum = 0;
int count = 0;
while( )
{
count++;
}
System.out.println("There were " + count + " numbers in " + fileName + " and their sum was " + sum + "."); }
}
while 的这个loop应该怎么写啊?
import java.util.Scanner;
import java.io.*;public class CountingAndSumming { public static void main(String[] args) {
String fileName = "input.txt";
Scanner fileScan = new Scanner(new File(fileName));
int sum = 0;
int count = 0;
while( )
{
count++;
}
System.out.println("There were " + count + " numbers in " + fileName + " and their sum was " + sum + "."); }
}
Pattern p = Pattern.compile("\\d+");
String s = fileScan.next();
Matcher m = p.matcher(s);
if (m.matches()) {
count++;
sum += Integer.valueOf(s);
}
}
String s = fileScan.next();
try {
sum += Integer.parseInt(s);
} catch Exception {
continue;
}
count++;
}
import java.io.*;
public class ok{
public static void main(String[] args){
try{
BufferedReader in=new BufferedReader(new FileReader("sample.txt"));
String s;
int i=0,j=1,cnt=0,sum=0,k;
while((s=in.readLine())!=null){
i=0;
while(i<s.length()){
if(i<s.length()&&(s.charAt(i)>='0'&&s.charAt(i)<='9')){
j=1;k=i;
while(k<s.length()&&(s.charAt(k)>='0')&&(s.charAt(k)<='9')){//统计一共多少位数
//System.out.println("k="+s.charAt(k));
j++;k++;
}
sum+=Integer.parseInt(s.substring(i,i+j-1));
cnt++;
}
i=i+j;
}
}
System.out.println(“sum=”+sum);//总和
System.out.println("cnt="+cnt);//个数
}catch(Exception e){
e.printStackTrace();
}
}
}
import java.io.*;
public class ok{
public static void main(String[] args){
try{
BufferedReader in=new BufferedReader(new FileReader("sample.txt"));
String s;
int i=0,j=1,cnt=0,sum=0,k=1,num=0;
while((s=in.readLine())!=null){
i=s.length()-1;
while(i>=0){
if(i>=0&&(s.charAt(i)>='0'&&s.charAt(i)<='9')){//从后往前,例如asd15,遇到5,num+=5
k=1;num+=(s.charAt(i)-48);i--;//遇到10,num=num+1*10;……
while(i>=0&&(s.charAt(i)>='0')&&(s.charAt(i)<='9')){
k*=10;
num=num+(s.charAt(i)-48)*k;
i--;
}
sum+=num;num=0;
cnt++;
}
i--;
}
}
System.out.println("sum="+sum);//上例中"写成“了。
System.out.println("cnt="+cnt);
}catch(Exception e){
e.printStackTrace();
}
}
}