如何从字符串数组中获取特定值并将其保存到另一个字符串数组?

时间:2016-04-11 01:42:25

标签: java arrays string

我有这样的字符串数组:
String A[] = {"65535", "00000", "00000", "00000", "00000", "A32CE", "43251", "98702", "ACED2", "98AAB", "00000", "00000", "00000", "65535", "65535"}

如何获取6553500000以外的值并将其保存到另一个字符串数组中,如下所示:
String B[] = {"A32CE", "43251", "98702", "ACED2", "98AAB"}

我已经尝试过了:

if(A!="65535" && A!="00000")
{
    for(i=0; i<A.length; i++){
    B[i] = A[i];
    }
}

但我得到的返回值是整个字符串A []。请帮忙。

1 个答案:

答案 0 :(得分:1)

由于您正在使用数组而不是ArrayList个对象,因此事情变得有点乏味。以下代码贯穿第一个数组,检查当前String是否不是您不想要的那个,如果找到了您想要的那个,则将计数器增加1。然后它创建一个与初始数组中所需对象数一样大的新数组,再次通过初始数组运行,这次将所需的String对象添加到第二个数组。

String[] arrayOne = {"65535", "00000", "00000", "00000", "00000",
        "A32CE", "43251", "98702", "ACED2", "98AAB",
        "00000", "00000", "00000", "65535", "65535"};

int validCounter = 0;
for(int i = 0; i < arrayOne.length; i++)
  if(!(arrayOne[i].equals("65535") || arrayOne[i].equals("00000")))
      validCounter++;

String[] arrayTwo = new String[validCounter];
int arrayTwoPos = 0;
for(int i = 0; i < arrayOne.length; i++)
  if(!(arrayOne[i].equals("65535") || arrayOne[i].equals("00000"))){
      arrayTwo[arrayTwoPos] = arrayOne[i];
      arrayTwoPos++;
  }

for(int i = 0; i < arrayTwo.length; i++)
    System.out.println(arrayTwo[i]);