2016-04-05 15 views
0

私は文字列配列[]と2つ以上の文字列配列loc []とorg []を持っています。ファイルを扱う配列にデータを格納する

私は、startIndex、Lengthのようないくつかの変数のファイル値を読み込んでいます。

line []の値を含む新しい文字列配列arr []を作成しています。次に、startIndexの値に応じて、loc []およびorg []値をarr []にマージする2回の繰り返しをループしています。ファイルから長さを読み込みます。

ここでは、startIndexの最初の反復値とarr []のloc []挿入の長さを読み込み、それらが挿入されています。

しかし、今度は2回目の繰り返しで、以前のものとは異なるstartIndexとlengthの値をもう一度読み、arr []にorg []を挿入する必要があります。org [] startIndexは前のもの、org []はloc []がすでにマージされている場所に挿入されません。

どうすれば実現できますか?

答えて

0

startIndex_loc、length_loc、startIndex_org、length_orgなどの変数で、両方の配列のstartIndexとlengthの両方を読み取ることをお勧めします。loc[]org[]

配列line[]の長さ+ loc []の長さを、コピーする(length_loc[])+コピーするorg []の長さ(length_org)に割り当てる必要があります。

まず、line []の値を挿入します。

次に、startIndex_locから始まるloc []の要素を、line.length indexから始まるarr []にコピーします。

これで、startIndex_locから始まるorg30の要素が、line.length + length_locインデックスからarr []にコピーされます。参照のためのJavaコードを以下

チェック:

  Path path = Paths.get("testing.txt"); 
     Scanner br = new Scanner(path); 
     String sCurrentLine; 
     int startIndex_loc = br.nextInt(); 
     int length_loc = br.nextInt(); 
     int startIndex_org = br.nextInt(); 
     int length_org = br.nextInt(); 

     int line[] = {1,2,3,4}; 
     int org[] = {8,9,10,11}; 
     int loc[] = {4,8,12,16}; 

     int[] arr = new int[line.length + length_loc + length_org]; 
     for(int i = 0; i<line.length; i++){ 
      arr[i] = line[i]; 
     } 

     for(int i = 0; i<length_loc; i++){ 
      arr[line.length + i] = loc[startIndex_loc + i]; 
     } 
     for(int i = 0; i<length_org; i++){ 
      arr[line.length + length_loc + i] = org[startIndex_org + i]; 
     } 
関連する問題