パッケージのテキスト。 輸入java.io.BufferedReader; 輸入java.io.FileNotFoundException。 輸入java.io.FileReader; インポートにjava.io.IOException; パブリック クラス3 { パブリック 静的 int型の長さ= 0 。 パブリック 静的 INT [] readArray(){ INT [] A = 新た INT [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 + =(CHAR )T。 もし(!(T <48 || T> 57)&& NUM = ""!&& NUM = " - "){ [長++] = 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] = [0 ]。 int型 J = 0、最大= 0、MAXNUM = 0 ; 以下のために(INT I 1 =; I <長さ、I ++ ){ 場合([i]が<0 && B [j]> 0 ) B [ ++ jは] = [I]。 他の 場合([i]が> 0 && B [J] <0 ) B [ ++ jは] = [I]。 他の 場合([i]が<= 0 && B [J] <0 ) B [J] + = [I]。 それ以外の 場合([i]が> = 0 && B [J]> 0) B [J] + = [I]。 } もし、(B [0] <= 0 && B [1] == 0 ){ 最大値 = [0 ]。 以下のために(INT I = 1; I <10; I ++ ) 場合(MAX < [i])と 最大値 = [I]。 } 他{ マックス = B [0 ]。 用(intは I ++; I <= jのI = 0 ) であれば(MAX < 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( "サブ配列と最大である:" + MAX); } 公共の 静的な 無効メイン(文字列[]引数){ MAXNUMBER(readArray() ); } }
行うことができますファイルを読んだが、プログラムの堅牢性は保証されません。