2 myc 100 myc_100 于 2012.11.05 13:08 提问

在数组中储存字符串的问题

能在字符串数组中保存字符串变量吗?

String st1 = "",st2 = "",st3 = "",st4 = "";
 String[] str = {st1,st2,st3,st4};

当我使用for循环,str能获取st1和st2的值,而st3 和 st4就显示不是它的变量。
所有我想把这些变量放在数组中,以下就是一个字符串数组的例子:

String[] containsValue = { "hi", "hello", "there" };

String strHi, strHello, strThere;
String[] getContainsValue = { strHi, strHello, strThere };

for (int x = 0; x < getContainsValue.length; x++) {
    getContainsValue[x] = containsValue[x];
}

The value of:
strHi = "hi"
strHello = "hello"
strThere = "there";

基本意思就是想把containsValue []里的值转化为3个字符串: strHi,strHello,strThere ,然后存储在getContainsValue[]。这样做可以吗,有谁能给一个框架来解决这个问题?谢谢!

4个回答

LiDaming_and
LiDaming_and   2012.11.05 17:04
已采纳

你可以使用Map<K,V>.

Map<String,String> map=new HashMap<String,String>();
map.put("strHi","hi");
map.put("strHello","hello");
map.put("strThere","there");

System.out.println(map.get("strHello"));
myc_100
myc_100 你是说我可以再Map中使用循环动态的设置一个值?
接近 5 年之前 回复
Baby_Bonnie
Baby_Bonnie   2012.11.06 17:29

最好是使用Map,并且存储为key-Value pairs。

Map<String,String> myKVMap=new HashMap<String,String>();
myKVMap.put("strHi","value1");
myKVMap.put("strHello","value2");
myKVMap.put("strThere","value3");

这样你可以删除所有的变量名和争议的值。

znl_12
znl_12   2012.11.06 17:32

您可以使用enum类作为需要的数组:

public enum EnumModifE {
    str1("1"), str2("2"), str3("3");
    String value;
    EnumModifE(final String s) {
        this.value = s;
    }
    public void setValue(final String s) {
        this.value = s;
    }
}
public class EnumModifM {
    public static void main(final String[] args) {
        for (final EnumModifE eme : EnumModifE.values()) {
            System.out.println(eme + "\t" + eme.value);
        }
        EnumModifE.str1.setValue("Hello");
        EnumModifE.str2.setValue("all");
        EnumModifE.str3.setValue("[wo]men");

        for (final EnumModifE eme : EnumModifE.values()) {
            System.out.println(eme + "\t" + eme.value);
        }
    }
}

输出:

str1    1
str2    2
str3    3
str1    Hello
str2    all
str3    [wo]men
yongyong_21
yongyong_21   2012.11.06 11:19

你也可以使用:

Map<String,String> map = new HashMap<String,String>();
String[] str = {"hi","hello","there"};

for(int x = 0; x < str.lenght;x++){
map.put(str[x],"something you want to store");

}
Csdn user default icon
上传中...
上传图片
插入图片