java - Android 的奇怪问题,程序可以编译但无法运行

标签 java android string unicode query-string

在我的 Android 项目中,我有一个简单的 Java 文件,它获取网页内容、对文本执行某些操作并将文本作为 String 返回。我在 Android 上的另一个 Activity 的 ScrollView 中显示此文本。

它工作正常,但当我尝试操作这个 Java 文件中的文本时,问题就出现了。我尝试使用数组,它不起作用,然后切换回 String,仍然没有任何结果。这只是一种特殊的方法,无法提供任何输出,但程序可以正常编译。

但是,在 Eclipse 的 Java 项目中尝试相同的方法时效果非常好。

这是我的代码:

// This method will return selected stripped text extracted from rawData
public static String FillMenus(String rawData){
    String resulT = "";
    int c1, c2;
    for(int i=0; i<11; i++){ 
        c1 = rawData.indexOf("\" width=\"50px\" />") + 17;
        c2 = rawData.indexOf(" €</td>") + 2;

        if (c1==16 || c2==1) break;
        if (c1<=c2){
            resulT = resulT+"\n"+ rawData.substring(c1, c2); 
            rawData = rawData.substring(c2);
        }
        if (c1>c2){ 
            resulT = resulT+"\n"+StripTag((rawData.substring(0, c2))); 
            rawData = rawData.substring(c2);
        }
    } 
    return resulT;
}

如果这个方法没有问题,那为什么它没有提供任何输出呢?如果我在 Android 中返回 rawData,手机会正确显示所有内容。如果我返回输出结果String,则手机中全是空白。

如果我在同一个 Android 项目中的另一个测试类 (test.java) 中调用此方法(例如在类 ABC 中创建),则使用 String a = ABC.FillMenus(String b) ) 有一些奇怪的事情。我收到编译器错误,但在 Android 手机中显示为空白。从 Java 项目中调用的同样的东西绝对可以正常工作。

我有什么遗漏吗?

最佳答案

一些事情

1) for 循环是为了什么?

2) if (c1<=c2) 和 if (c1>c2) 是互斥的,因此我建议将 if (c1>c2) 更改为 else(将来当您想要更改代码时会有所帮助)

3)您应该将结果初始化为null,而不是“”,这将帮助您在FillMenu退出时进行测试,以了解您的代码何时被跳过或何时没有值。

现在我的猜测是,由于某种原因 if (c1==16 || c2==1) break;被触发,因此 resultT 永远不会改变,因此存在为空。

您应该在调试中运行此代码并在其中放置一个断点,特别监视 c1 c2 的值

我认为没有足够的信息来帮助您的部分表格

杰森

关于java - Android 的奇怪问题,程序可以编译但无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4190411/

相关文章:

java - 如何检查线程是否正在运行

android - 在Android中使用ContactsContract时出现"SQLiteException: no such column: mimetype"

python - 在 python 中使用字符串模块和 ascii 打印单词?

javascript从数组中随机数返回单个字母/符号

JavaScript 验证

java - 如何从 Netbeans 中的 Java 应用程序项目中排除源文件?

java - spring mvc 用html符号替换引号

android - 为什么在 Android 中调用 stopService 后服务中的线程仍未停止?

java - 共享监听器并传入 Activity 实例

javascript - 查找字符串中最大的数字[jquery]