数组(续)

package test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.io.InputStreamReader;
import java.math.BigInteger;

public class Test3 {
    static String s="";
    static Scanner cin = new Scanner(System.in);
    
    public static String read() throws IOException{
        
        
        FileInputStream fis = new FileInputStream("E:\\shu1.txt");
        BufferedReader br = new BufferedReader(new InputStreamReader(fis));
        String temp = "";
        while((temp = br.readLine()) != null) 
            s = s + temp + "\n";  
                     
            fis.close();
        br.close();
                        
        return s;
    }
    
    public static void write() throws IOException{
        int n;
        System.out.println("请输入计算的数据量");
        boolean continueInput=true;
        do {                  //输入的如果不是整数,报错。
        try {
                n=cin.nextInt();
                continueInput=false;
                File file1 = new File("E:\\shu1.txt");
                FileWriter out = new FileWriter(file1);
                BufferedWriter bw = new BufferedWriter(out);
                for(int i = 0;i < n ; i++){
                       
                    int ran = (int)(Math.random()*10000000) - (int)(Math.random()*20000000);
                    BigInteger a = new BigInteger(String.valueOf(ran));
                    bw.write(String.valueOf(a) + " ");
                
                }
                bw.close();
        }catch(InputMismatchException e) {
         
            System.out.println("try again(incorrect input:an integer is required");
        cin.nextLine();
        }
        }while(continueInput);
        
      
      /*  File file1 = new File("E:\\shu1.txt");
        FileWriter out = new FileWriter(file1);
        BufferedWriter bw = new BufferedWriter(out);
        for(int i = 0;i < n ; i++){
               
            int ran = (int)(Math.random()*10000000) - (int)(Math.random()*20000000);
            BigInteger a = new BigInteger(String.valueOf(ran));
            bw.write(String.valueOf(a) + " ");
        
        }
        bw.close();
       */
            
    }
    public static void clearInfoForFile(String fileName) {
        File file =new File(fileName);
        try {
            if(!file.exists()) {
                file.createNewFile();
            }
            FileWriter fileWriter =new FileWriter(file);
            fileWriter.write("");
            fileWriter.flush();
            fileWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) throws IOException {
        clearInfoForFile("E:\\shu1.txt");
        write();
        read();
        String[] num = s.split("[^(-9--10-9)]");
        BigInteger value = new BigInteger("0");
        BigInteger sum = new BigInteger(String.valueOf(num[0]));  
        for(int i = 0;i < num.length;i++){
            int a = value.compareTo(BigInteger.valueOf(0));
            if ( a == 0 || a == -1) {       
                value = new BigInteger(String.valueOf(num[i]));   
            }else {
                   value.add(new BigInteger(String.valueOf(num[i])));      
                  }      
            if (sum.compareTo(value) == -1) {  
                       sum = value;
                   }
               }
                
            System.out.println("最大值为:" + sum);
        
    }
          
    
    
    
    

猜你喜欢

转载自www.cnblogs.com/wendi/p/12373545.html
今日推荐