如何在字符串数组android中等同项

时间:2017-04-10 09:26:11

标签: android arrays

我有两个String数组mylist和listprice。

 <string-array name="mylist">
    <item>Bottle</item>
    <item>Watch</item>
    <item>Books</item>
    <item>Mobile</item>
    <item>Purse</item>
    <item>Pen</item>
    <item>Glass</item>
    <item>Class</item>
    <item>Rubber</item>
    <item>Fan</item>
</string-array>

<string-array name="listprice">
    <item>160</item>
    <item>2600</item>
    <item>200</item>
    <item>26000</item>
    <item>260</item>
    <item>10</item>
    <item>500</item>
    <item>3000</item>
    <item>3</item>
    <item>380</item>
</string-array>

我想初始化两个数组项目,使“瓶子”等于“160”,“观看”等于“2600”等等......我怎样才能实现它...提前感谢...

6 个答案:

答案 0 :(得分:1)

您可以对两个数组关系使用哈希映射:

   HashMap<String,String> map=new HashMap<String,String>();
               for (int i = 0; i < getResources().getStringArray(R.array.mylist).length; i++) {
                    map.put(getResources().getStringArray(R.array.mylist)[i],getResources().getStringArray(R.array.listprice)[i]);
                }

答案 1 :(得分:1)

String[] itemList = getResources().getStringArray(R.array.mylist);
String[] itemPrice = getResources().getStringArray(R.array.listprice);

现在你可以将所有这些放在hashmap中。

HashMap<String, String> items = new HashMap<>();
for(int i = 0; i<itemList.length; i++){
items.put(itemList[i], itemPrice[i]);
}

现在,如果你想得到Fan的价格,那就写一下

String price = items.get("Fan"); //it will be 380

或者您可以使用str.equals(str2)方法检查项目,然后从索引获取itemPrice数组的价格。

答案 2 :(得分:0)

你可以这样得到你的数组:

arecord -Dhw:<card_num>,<device_num> -c <channel_number> –f <format> -r <sample_rate> | aplay -Dhw:<card_num>,<device_num>

答案 3 :(得分:0)

您可以使用以下代码访问字符串数组:

Resources res = getResources();
String[] mylist = res.getStringArray(R.array.mylist);
String[] listprice = res.getStringArray(R.array.listprice);

您可以使用mylist[index]等于listprice[index]

答案 4 :(得分:0)

取两个字符串并合并值。

 private String[] concat(String[] A, String[] B) {
       int aLen = A.length;
       int bLen = B.length;
       String[] C= new String[aLen+bLen];
       System.arraycopy(A, 0, C, 0, aLen);
       System.arraycopy(B, 0, C, aLen, bLen);
       return C;
    }

答案 5 :(得分:0)

在java中,您可以执行类似

的操作
String myList[]=getResources().getStringArray(R.array.mylist);
String myListPrice[]=getResources().getStringArray(R.array.listprice);

你可以创建一个类,让我们说

public class ItemPrice{
      private String listItemName;
      private String listPrice;
      public String getListItemName(){return listItemName;}
      public String getListPrice(){return listPrice;}
      public void setListItemName(String itemName){this.listItemName = itemName;}
      public void setListPrice(String listPrice){this.listPrice = listPrice;}
}

您的数组逻辑可以是这样的

List<ItemPrice> itemPriceList = new ArrayList<ItemPrice>();
for(int i=0;i<myList.length;i++){
    ItemPrice items =  new ItemPrice();
    items.setListItemName(myList[i]);
    items.setListPrice(myListPrice[i]);
    itemPriceList.add(items);
}

所以你可以获得itemPriceList,它将包含两个项目以及封装在一个对象中的价格。我假设两个数组长度都相同,并根据它们的索引进行映射。

如果您正在寻找此项并且需要进一步的帮助,请分享吗?