如何在Android中将字符串逐个转换为字符?

3

我有一个EditText字段,用户可以输入他们的名字。我想用字母检查它出现了多少次。 哪种方法是最好的呢?

我尝试使用以下代码从字符串中获取每个字符,但出现了错误。如果有人能帮助,我将不胜感激。

name=(EditText)findViewById(gami.Numerology.R.id.inputUI);
String a=name.getText().toString();

for ( int i = 0; i < a.length(); i++ )

{  
           c = a.charAt(i);

            if (c=='s')
            {
            s=1; //like this for all characters
            }

         }

我刚刚将这个放在了按钮的点击事件中。


你在统计每个字母的数量吗?比如 "a" 的数量,"b" 的数量等等? - CocoNess
谭雅,谢谢你。当然,那就是我需要的。 - Rick
Lews Therin,谢谢你。错误为E/AndroidRuntime(5863): android.content.res.Resources$NotFoundException: String resource ID #0x1。 - Rick
2个回答

2
 //declare the original String object
    String strOrig = "Hello World";
    //declare the char array
    char[] stringArray;


//convert string into array using toCharArray() method of string class
stringArray = strOrig.toCharArray();

//display the array
for(int index=0; index < stringArray.length; index++)
//check of character appearance 

我也使用了这种方法,但出现了这样的错误.. 10-07 04:14:25.562: E/AndroidRuntime(5863): android.content.res.Resources$NotFoundException: String resource ID #0x1 - Rick
是的,谢谢,它可以工作了。错误在于我需要将字符转换为字符串才能显示。 - Rick

2

您可以在Java中使用哈希表或某种字典。以下是一个简单的示例,因为我不知道如何在Java中使用哈希表:

HashMap<Character, Integer> counter = new HashMap<Character, Integer>();
for (Character c: name)
{
    counter.put(c, counter.get(c) == null ? 1 : counter.get(c)++);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接