2013-10-08 38 views
0

我想複製兩個陣列,但第二個沒有最後的位置。陣列副本,第二個沒有最後的位置

例:ARRAY1 = 1234 數組2 = 123

的最終目標是顯示在一應用程序的屏幕的第二陣列,但是當我發送成爲0值這個屏幕。 任何人都可以幫助我嗎?

這裏是代碼:

public void deletar(String visor_) 
{ 
    //visor=screen.getText().toString(); 
    int a,b; 
    char [] deletar1 = visor.toCharArray(); 
    char [] deletar2={'a'}; 

    for (a=0;a<deletar1.length-1;a++) 
    { 
     for(b=0;b<deletar2.length;b++) 
     { 
       deletar2[b]=deletar1[a]; 
     } 
    } 

    screen.setText(String.valueOf(deletar2));  
} 
+0

什麼是你真正想要做的:S ..我真的很困惑 – stinepike

+2

提示:你內心'for'應該是一個'if' – SJuan76

+2

刪除-1從'deletar1.length-1'。它應該是'deletar1.length' – Nizam

回答

1

通過使用System.arraycopy()和一個指定的長度,你可以達到你想要的結果,而不必循環,弄明白你自己的。

http://www.tutorialspoint.com/java/lang/system_arraycopy.htm

實施例:

char [] l1 = {'a','b','c'}; 
char [] l2 = new char[l1.length - 1]; 
System.arraycopy(l1, 0, l2, 0, l1.length-1); 

當然這個代碼將是不安全的,如果L1具有0

+0

什麼[子](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(INT,INT))? – Fildor

+0

他關於以陣列形式,而不是字符串形式複製數據特別要求。子串是一個更好的解決方案,但更普遍。 – davecom

1

長度我建議使用String#subString(int beginIndex, int endIndex)此單行溶液:

String str = visor.subString(0,visor.length()-2); 
+0

他想要以數組形式複製數據,而不是字符串形式。顯然,這是一個很好的字符串解決方案。 – davecom

+0

@davecom我不確定OP真正需要什麼。標題表示一個數組副本,但API表明真正的需要是在一個String上工作。毫無疑問,我也贊成你的答案。 –

0

試試這個代碼:

public void deletar(String visor_) 
{ 
    //visor=screen.getText().toString(); 
    int a,b; 
    char [] deletar1 = visor.toCharArray(); 
    char [] deletar2={'a'}; 

    for (a=0;a<deletar1.length;a++) 
    { 
     for(b=0;b<deletar2.length;b++) 
     { 
       deletar2[b]=deletar1[a]; 
     } 
    } 

    screen.setText(String.valueOf(deletar2));  
} 
相關問題