2013-03-03 99 views
0

這是我的代碼開始。如何在Java中減少數組?

static char[] a1 = {'a', 'b', 'c', 'd', 'e'}; 
static char[] a2 = {'a', 'c', 'd', 'c'}; 

     for (int i = 1; i <= 5 ; i++) { 

      if(a1[i] == a2[i]){ 
       sop(a2[i] + ""); 
      }else{ 

       if(a1[i] > a2[i]){ 
        sop(""); 
       }else if(a1[i] < a2[i]){ 
        sop("-"); 
        a2[i] = a2[i-1]; 
       } 

      } 
     } 

我想知道你如何減少行a2[i] = a2[i-1]。我做對了嗎?

最後,我試圖對齊a1a2。所以,我可以得到的輸出:

ABCDE 
A-CD-C 

注:sop = System.out.print

+0

請告訴我你的第一語言是什麼嗎?可以理解,你只是在改變陣列中的1個點,你是否想要改變所有的?你將需要第二個改變其他的值。 – 2013-03-03 03:21:42

+0

@RicardoOrtegaMagaña你的意思是編程語言嗎?我試圖減少陣列a2 – 2013-03-03 03:26:17

+0

對於你的例子,請發佈你想得到的輸出。如果陣列本身應該改變,請告訴我們如何改變。 – 2013-03-03 03:26:43

回答

0

如果我得到你的思維,在使用減量你也許想遞減指數的使用只是第二陣列?如果是這樣,它不會那樣工作。此外,還有一些問題陣列解決諸如(從位置0的Java索引數組元素,而不是位置1

總之,您的問題聲明,你可以嘗試:

static char[] a1 = {'a', 'b', 'c', 'd', 'e'}; 
static char[] a2 = {'a', 'c', 'd', 'c'}; 

for(int k=0;k<a1.length;k++) 
    System.out.print(a1[k]); 
System.out.println(); 

for (int i = 0, j=0 ; i<a1.length && j<a2.length ; i++, j++) 
{ 
    if(a1[i] == a2[j]) 
     System.out.print(a2[j]); 
    else if(a1[i] < a2[j]) 
    { 
     System.out.print("-"); 
     j--; 
    } 

}