拆分字符串以在 UI 选择元素中使用 [重复]

Posted

技术标签:

【中文标题】拆分字符串以在 UI 选择元素中使用 [重复]【英文标题】:Splitting a String for use in a UI selection element [duplicate] 【发布时间】:2014-03-22 00:43:48 【问题描述】:

我还在学习 Java。我有这个 XML 字符串数组列表:

<string-array name="CountryCodes" >
 <item>93,AF, Afganistan</item>
 <item>355,AL, Albania</item>
 <item>213,DZ, Algeria</item>
</string-array>

我正在使用 Arrayadapter 将此数组添加到这样的微调器中:

String [] countries = this.getResources().getStringArray(R.array.CountryCodes);


        ArrayAdapter<String> adapter =  new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countries);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

         mCountries.setAdapter(adapter);

这很好用,XML 没有问题,但我真正想做的是在微调器中只显示国家,然后在单独的 Edittext 中显示相应的数字。

我知道我必须使用split() 方法来删​​除","。但是一旦我有了单独的字符串元素(例如“93,AF,Afganistan”)

我该怎么做

    只获取国家/地区名称 保持国家名称与相应数字同步

【问题讨论】:

@Simon 不是重复的,因为xml解析是android作为资源完成的,而且String[]已经存在了。 @user28... :您需要使用 String.split(",") 拆分字符串并使用位置 2 的项目(加上修剪)。 @njzk2 谢谢。这很有帮助。现在我明白了 BradR 的回答。 @njzk2 嗯,我想我已经添加了评论。我的观点是,在 XML 上使用任何字符串方法都注定要失败。改用解析器,然后对解析出的数据执行字符串操作。我们不要再开启地狱之门***.com/questions/1732348/… @Simon:是的,但这实际上与 XML 无关。 Android 会为您完成所有解析 (getResources().getStringArray),SO 真正在处理的是字符串数组,正如您在 BradR 的回答中看到的那样。 【参考方案1】:

如果你想将国家名称从给定的数组中分离出来,你可以使用这样的东西。

    String[] edited = new String[countries.length];
    for(int i = 0; i < countries.length; i++) 
        String s = countries[i];
        edited[i] = s.substring(s.lastIndexOf(','));
    

【讨论】:

【参考方案2】:

这将使用拆分 mycoutries 将只有国家和 myotherstuff 来自该行的其余数据

String[] mycountries= new String[countries.length];
String[] myotherstuff = new String[countries.length];
 for(int i = 0; i < countries.length; i++) 
    String s = countries[i];
    String[] parts = s.split(","); 
    myotherstuff[i] = parts[0]+","+parts[1];
    mycountries[i] = parts[2];

【讨论】:

以上是关于拆分字符串以在 UI 选择元素中使用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

加入列表和拆分字符串 [重复]

如何拆分字符串并将其存储在临时变量中[重复]

将字符串拆分为新列[重复]

在','C ++中拆分字符串[重复]

在C中使用多个分隔符拆分字符串[重复]

将字符串拆分为字符串数组[重复]