Java Android:如何从RSS提要中获取一个值,并从另一个RSS提要中的值中减去它
嘿,我有这两个RSS源-和。现在我要做的是从一个RSS提要中获取一个值,然后用另一个RSS提要中的值计算它。比如说 132.9-133.1 我该怎么做呢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 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提要的价值和较低的价值,通过选择一个或另一个很容易理解的答案,你可以省下钱,我相信这对我会有很大帮助