在二维数组的每一步运行中,都在控制台输出运行到了哪里,我的方法时添加System.out.print()。
public class demo03 { public static void main(String[] args) throws IOException { int max= 2147483647; String c=null; Random rand = new Random(); ArrayList<String> list = new ArrayList<String>(); File file = new File("E:/f1.txt"); if(!file.exists()) { System.out.println("file inexists"); System.exit(0); } String[] split1=null; try { BufferedReader br = new BufferedReader(new FileReader(file)); String line; while ((line = br.readLine()) != null) { split1 = line.split("\s+"); } for(int i=0;i<split1.length;i++) { list.add(split1[i]); } for(int i=0;i<list.size();i++) { System.out.print(list.get(i)+" "); } }finally { Pattern pattern = Pattern.compile("^[-\+]?[\d]*$"); for(int i=0;i<list.size();) { boolean bool=true; bool=(boolean)pattern.matcher(list.get(i)).matches(); String v=list.get(i); if(bool==true) { i++; } else { int b=rand.nextInt(max); int num=rand.nextInt(2); if(num==1) { c="-"+String.valueOf(b); } else { c=String.valueOf(b); } list.set(i, c); System.out.println("Warning!Data not standardized.Revised:"+c); i++; } } } /* * * * */ int q=0; ArrayList<Integer> array=new ArrayList<Integer>(); int sum=0; //子数组的和 int x=0; for(int i=0;i<list.size();i++) { x=Integer.parseInt(list.get(i)); array.add(x); } max=array.get(0); //设最大子数组和为第一个 for(int i=0;i<array.size();i++) { if(sum<=0) { sum=array.get(i); System.out.println(); System.out.print("第"+(i+1)+"个数是"+sum); System.out.println(); } else { sum=sum+array.get(i); System.out.println("第"+(i+1)+"个数是"+array.get(i)); System.out.print("第"+i+"次和是"+sum); System.out.println(); } if(sum>max) { max=sum; System.out.print("此时的子数组最大值是"+max); System.out.println(); } System.out.println("已检查"+(i+1)+"个数"); /*if(i+1==array.size()) { q++; if(q==2) { break; } else { i=0; } }*/ } System.out.println("连续子元素的最大和为"+max); } }
运行截图: