【问题标题】:Android - The method is undefinedAndroid - 方法未定义
【发布时间】:2015-04-26 13:51:47
【问题描述】:

我在尝试转换为 CharSequence[] 时不断收到此错误。

字符串类型的 toArray(CharSequence[]) 方法未定义

这是我的代码

              CharSequence[] cs = abbrev.toArray(new CharSequence[abbrev.length()]);

缩写只是将句子分成第一个字符 (Hello World --> 硬件)

       String[] result = matches.toString().split("\\s+");
        // The string we'll create

        String abbrev = "";

           // Loop over the results from the string splitting
           for (int i = 0; i < result.length; i++){

               // Grab the first character of this entry
               char c = result[i].charAt(0);

               // If its a number, add the whole number
               if (c >= '0' && c <= '9'){
                   abbrev += result[i];
               }

               // If its not a number, just append the character
               else{
                   abbrev += c;
               }
           }

有什么想法吗?

谢谢

【问题讨论】:

  • 非常清晰的错误信息你有什么不明白的地方?

标签: android arrays charsequence


【解决方案1】:

因为abbrev 是一个字符串,所以不能在上面调用toArray。首先将其转换为CharSequence。 例如,

CharSequence[] abbrevCs = abbrev; // it's converted automatically
CharSequence[] cs = abbrevCs.toArray(new CharSequence[abbrev.length()]);

【讨论】:

  • 他正在尝试将其转换为 CS
  • 试过了,得到这个错误 Type mismatch: cannot convert from String to CharSequence[]
  • 您的所有工具都是最新的吗?尝试重建项目。如果您使用的是 IDE,请重新启动 IDE。在最坏的情况下卸载并重新安装东西。玩得开心:)
  • 完成所有仍在发生的事情
  • 你卸载了JDK和IDE? (然后重新安装它们?)如果是这样,请在另一台计算机上尝试....
【解决方案2】:

您不必将 String 转换为 CharSequence,因为 String 是 CharSequence。您可以将 String 对象分配给 CharSequence 对象,并且转换是隐式的。更多详情请看这里:How to convert a String to CharSequence?

【讨论】:

  • 但是,OP 仍然收到错误消息,所以出了点问题......
  • 是的,但是 OP 正在做的事情不是必要的或正确的。他们可以简单地将abbrev 分配给cs,并且转换是隐式的。
  • 当然可以,但是出了点问题,所以这个解决方案行不通。如果这个答案是正确的,那么问题就不会在这里......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
相关资源
最近更新 更多