文件里的数据为
package com.sun2; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Test { private static BufferedReader br; public static void main(String[] args) throws IOException { br = new BufferedReader(new FileReader("C:\\Users\\hp\\Desktop\\shuzu.txt")); String s=""; String s1; while((s1=br.readLine())!=null) { s=s+s1; } String [] data=s.split(" "); int [] datas=new int [data.length]; //将String类型数组转成int类型 for(int j=0;j<data.length;j++) { datas[j]=Integer.parseInt(data[j]); } for(int i=0;i<datas.length;i++) { System.out.print(datas[i]+" "); } double sum = 0; // max为子数组的最大和 double max = 0; for (int i=0,j = 0; j< datas.length; j++,i++) { sum=sum+datas[i];// 求和 if (sum < 0) {// 如果当前求得总和为负数的话,就将其清零,并且开始位置从下一个位置开始 sum = 0; } if (sum > max) {// 如果求得总和大于之前的最大值的话,就将sum赋值给max,同时记录最后的位置 max = sum; } } System.out.println("Max:" + max); } }
运行截图