【问题标题】:Error using split method in Codenameone在 Codenameone 中使用 split 方法时出错
【发布时间】:2014-09-16 18:08:16
【问题描述】:

我创建了一个新的 Codenameone 项目。它包含以下代码:

String values = "one, two, tree";
String[] v = values.split(",");

当我构建项目时,我得到了这个错误:

location: variable definition of type String 
error: cannot find symbol
String[] v = values.split(",");
symbol:   method split(String)

但是,如果我以示例项目“MapsDemo”并使用拆分方法,则一切正常。

可能是什么问题?

谢谢。

【问题讨论】:

    标签: split codenameone build-error


    【解决方案1】:

    Codename One 支持 Java 5 的一个子集,而 String.split() 不存在。在所有平台上更改 VM 实现代码要比在代号 one 包空间中添加一个可移植库要困难得多。使所有边缘情况 100% 兼容也更难,并且它使可执行文件更大(即使您不使用 String.split 也需要付费!)。

    我们有StringUtilsStringTokenizercn1lib 部分还有一个正则表达式包。

    【讨论】:

    • 好的。我明白。我将改用“StringUtils”。但是,我想知道 ¿为什么 'String.split()' DID 在您的 MapsDemo 示例中起作用。你能告诉我为什么吗?
    • 在我们的地图演示中,您在哪里看到字符串拆分?
    • 我确实使用 String.split() 编写了一行代码(在您的 MapsDemo 应用程序中)并且它有效。为什么?
    • 模拟器基于 Java SE,因此它可以在内部访问完整的 API。由于我们的演示以非标准方式布局,因此可能出现问题。但是,如果您在构建某些平台时使用此 API,它将失败。在为 Android 或桌面目标构建时它不会失败,因为在这些平台上 API 确实存在。但默认情况下,我们会阻止您在全局范围内使用它来启用 WORA。
    • 谢谢你,Shai。你说得对。 MapsDemo 非常古老,它的 build.xml 允许使用几种在构建过程中会失败的方法。更新所有演示可能是个好主意。再次感谢。亲切的问候,古斯塔沃。
    【解决方案2】:

    你为什么不试试这个?

        import java.util.StringTokenizer;
        ... ...
        String fruits = "apple:pear:grape";
        String delimiter = ":";
        StringTokenizer fruitsTokenizer = new StringTokenizer(fruits, delimiter);
        while (fruitsTokenizer.hasMoreTokens()) {
                String fruit = fruitsTokenizer.nextToken();
                //
                // Do here something you want...
                //
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      相关资源
      最近更新 更多