Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:如何从RSS提要中获取一个值,并从另一个RSS提要中的值中减去它_Java_Android_Xml_Rss - Fatal编程技术网

Java Android:如何从RSS提要中获取一个值,并从另一个RSS提要中的值中减去它

Java Android:如何从RSS提要中获取一个值,并从另一个RSS提要中的值中减去它,java,android,xml,rss,Java,Android,Xml,Rss,嘿,我有这两个RSS源-和。现在我要做的是从一个RSS提要中获取一个值,然后用另一个RSS提要中的值计算它。比如说 132.9-133.1 我该怎么做呢 基本思想是,用户创建RSS URL,然后onClick从每个RSS提要中获取所有值,并将其与另一个进行比较,这样用户就可以得到差异,因此选择一个或另一个可以节省总体资金据我所知,您的问题有一个简单的答案,还有一个更具体的有用答案。我将陈述如何将字符数据转换为数字(无论是int、double、float等)的简单答案,首先针对记录,特别关注异常情

嘿,我有这两个RSS源-和。现在我要做的是从一个RSS提要中获取一个值,然后用另一个RSS提要中的值计算它。比如说

132.9-133.1

我该怎么做呢


基本思想是,用户创建RSS URL,然后onClick从每个RSS提要中获取所有值,并将其与另一个进行比较,这样用户就可以得到差异,因此选择一个或另一个可以节省总体资金据我所知,您的问题有一个简单的答案,还有一个更具体的有用答案。我将陈述如何将字符数据转换为数字(无论是int、double、float等)的简单答案,首先针对记录,特别关注异常情况,然后深入研究特别适用于您的问题的细节

任何时候,只要您认为某个数字的字符串表示形式是某种类型的数字,就可以为目标包装器类调用适当的valueOf()或parseXYZ()方法。例如,如果您正在查找整数:int是字符串“42”。valueOf(theInt)将返回值为42的整数,Integer.parseInt(theInt)将返回值为42的整数。

如果不表示,例如“四十二”或“42.0”,则这两个方法都会抛出NumberFormatException。解析浮点数的过程大致相同,只是“42.0”将正确解析,而“42.0.0”将在Android上引发NumberFormatException。传递给其中一个方法的整个字符串必须是所选类型的有效数字。结尾处的空白也将引发异常

如果使用的是扫描仪,则可以使用hasNextXYZ()和nextXYZ()检查并获取下一个数字,其中XYZ可以是任何基本类型。扫描程序将对下一个标记进行操作,它将根据您设置的分隔符定义下一个标记。

“太好了,那么应该在何时、何地以及如何获取XML中的数字并将其传递给上述任何方法?”您应该有一个数据结构来保存每个值,在解析XML时填充这些值。根据目前的情况,我的理解是,将XML解析为标记已经解决了。因此,请更新解析器,以便为最高、平均和最低元素的值调用正确的字符串到数字转换方法。您需要的字符串已经被正确地修剪过,并且在每个阶段都要通过解析器

或者,为了进一步解耦代码,创建一个对象来保存要比较的数据集,然后让解析器简单地实例化和调用setter。FuelData可能就是那个对象

class FuelData { 
    String KEY_TYPE;
    double highest;
    double average;
    double lowest;
    // if future support for currency types needed, would go here, hook in to units attribute in xml
    FuelData(String type) { // call this every time a type is encountered parsing html
        KEY_TYPE = type;
    }

    void setHighest(String val) { // here, val is value of "Highest" element
        try {
            highest = Double.parseDouble(val); // because you're not using a Scanner to parse
        } catch (NumberFormatException e) {
        // handle appropriately
        }
        // perhaps sanity check: disallow negatives, check not less than lowest, etc.
    }

    // and so on for average and lowest

    double computeSavings(FuelData pricesB) { // called by onClick
    // your subtraction goes here. Perhaps you decide it's reasonable to use this method
    // to compute savings for Regular vs. Premium and therefore do not check type,
    // perhaps you decide that's illogical and do check types.
    // Note: good arguments can be made that this method should exist in a different
    // class. I've placed it here for simplicity's sake.
    }
}

以逻辑方式收集FuelData,解析完成后可以访问,例如feed1解析为一组FuelData,feed2解析为一组FuelData,等等,然后让onClick从每个RSS提要中提取解析的所有FuelData,通过ComputeSaves进行比较,然后返回结果。

您是否有一个算法来查找“节省的总资金”,在针对petrolprices的RSS提要实施时需要具体指导,或者你也在寻求帮助开发该算法?@newcoder我需要帮助开发代码,需要从RSS提要中获取一个值,然后将该值存储为一个整数值,然后从另一个RSS提要中执行同样的操作,然后用这些做一些计算。我知道如何节省资金,只需从较高的值中进行简单的减法即可RSS提要的价值和较低的价值,通过选择一个或另一个很容易理解的答案,你可以省下钱,我相信这对我会有很大帮助