패키지 텍스트를; 수입 java.io.BufferedReader의; 수입 java.io.FileNotFoundException; 수입 java.io.FileReader; 수입 때 java.io.IOException; 공용 클래스 세 { 공공 정적 INT의 길이 = 0 ; 공용 정적 INT [] readArray는 () { INT는 [A는 = 새로운 지능 [100 ]; INT t; 문자열 NUM = "" ; 시도 { BufferedReader의 BR = 새 (의 BufferedReader를새로운 FileReader를 ( "C : \\ 사용자 \\ AZ \\ 바탕 화면 \\ Array.txt" )); 반면 ((t = br.read ()) = -1! ) { 경우 (t == 45 && NUM == "") { NUM = "-" ; 계속 ; } 경우 (t> = 48 && t <= 57) NUM + = ( 숯 ) t; 경우 ((t <48 || t> 57) && NUM = ""&& NUM =! "-"!) { A [길이 ++ = 있는 Integer.parseInt (NUM); 만약 (t == 45) NUM = "-" ; 그밖에 NUM = "" ; } } 경우 ((NUM == ""|| NUM == "-")!) 이 [길이 ++ = 있는 Integer.parseInt (NUM); () br.close; } 캐치 (FileNotFoundException이 전자) { 에서 System.out.println ( "文件不存在!" ); } 캐치 (IOException이 전자) { 에서 System.out.println ( "文件读取异常!" ); } 반환 을; [] = B는 새로운 INT [100]; B [0] = A [0 ]; INT의 J = 0, 최대 = 0 maxnum = 0 ; 위한 ( INT 난 = 1; I <길이; I ++ ) { 경우 (a [I] <0 && B [J]> 0 ) , B [ ++ j는] = A [I]; 다른 경우 (a [I]> 0 && B [J] <0 ) , B [ ++ j는] = A [I]; 다른 경우 (a [I] <= 0 && B [J] <0 ) 2 [J] + = A [I]; 다른 경우 (a [I]> = 0 && B [J]> 0 ) B [J] + = A [I]; } 경우 (b [0] <= 0 && B [1] == 0 ) { 최대 = A [0 ]; 위한 ( INT 난 = 1; I <10; I ++ ) 만약 (최대 < A [I]) 최대 = A [I]; } 다른 { 최대 = B [0 ]; 위한 ( INT ; I <= J; 나는 = 0 난 ++ ) 만약 (최대 < B [I]) { 최대 = B [I]; maxnum= I; } INT t = 0 ; 대 ( INT I = maxnum; I <= J-2] = I + 2 ) { t = t + B [I + 1] + B [I + 2 ]; 만약 (t> 0 ) { 최대 + = t; t = 0 ; } } t = 0 ; 대 ( INT I = maxnum; I> = 2, I- = 2 ) { t = t + B [I-1] + B [I-2 ]; 만약 (t> 0) { 최대 + = T, T = 0 ; } } } 에서 System.out.println ( "서브 어레이 최대 인"+ ) 최대] } 공공 정적 무효 메인 (문자열 []에 args) { MAXNUMBER (readArray () ); } }
할 수있는 파일을 읽을이지만, 프로그램의 안정성을 보장 할 수 없습니다.