0

我正在尝试复制两个数组,但第二个没有最后一个位置。

例如:array1 = 1234 array2 = 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));       
 }
4

3 回答 3

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,此代码将不安全。

于 2013-10-08T12:53:10.567 回答
1

我建议使用String#subString(int beginIndex, int endIndex)这个单行解决方案:

String str = visor.subString(0,visor.length()-2);
于 2013-10-08T12:55:54.250 回答
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));       
 }
于 2013-10-08T12:58:36.130 回答