我有一个2D数组,每个元素都是一个字符串,我需要将包含数字的字符串转换为整数。
String[][] weatherData = [["London", "23", "11", "10.1"],["Tokyo","21", "9", "11"], ["Cape Town", "31", "12", "21"]]
每个阵列的第一个元素是城市名称,第二个是最高温度,第三个是最低温度,第四个是降雨量。
我需要将所有数值转换为整数,然后搜索每个数组的第二个元素(最高温度)以找到整个weatherData数组的最高温度并显示该温度。
如果有人能提供帮助那就太棒了!
答案 0 :(得分:1)
我会将原始的Strings数组转换为具有适当数据类型(整数和浮点数)的对象实例。
从那里你可以更容易地利用数据做事,比如找到温度最高的城市。一种方法是通过高温对对象列表进行排序,然后返回列表的第一个元素。
class Record {
String name; int high, low; double rainfall
Record(name, high, low, rainfall) {
this.name = name
this.high = high.toInteger()
this.low = low.toInteger()
this.rainfall = Double.valueOf(rainfall)
}
}
String[][] weatherData = [["London", "23", "11", "10.1"],["Tokyo","21", "9", "11"], ["Cape Town", "31", "12", "21"]]
def data = weatherData.collect { new Record(*it) }
def hottest = data.sort({ r1, r2 -> r2.high <=> r1.high}).first()
assert hottest.name == 'Cape Town'
答案 1 :(得分:1)
这个简单的怎么样?
String[][] weatherData = [["London", "23", "11", "10.1"],["Tokyo","21", "9", "11"], ["Cape Town", "31", "12", "21"]]
println weatherData.collect{ it[1] as Integer}.max()
答案 2 :(得分:0)
您不能在字符串数组中包含int值。 但是你可以做一个比较每个值(string.toInteger())并返回最高值的循环。
答案 3 :(得分:-1)
您可以使用此代码转换为整数,然后在该循环之后转换为最大温度
function Animal(name) {
this.name = name;
this.walk = function() {
console.log( "walk " + this.name );
};
}
// Animal.prototype.walk = function() { //// we can not use this trik and
// console.log( "walk " + this.name ); //// delete this.walk function in
//} //// constructor
function Rabbit(name) {
Animal.apply(this, arguments);
}
Rabbit.prototype = Object.create(Animal.prototype);
Rabbit.prototype.constructor = Rabbit;
Rabbit.prototype.walk = function() {
console.log( "jump " + this.name );
};
var rabbit = new Rabbit("Rabbit");
rabbit.walk(); // for now we get "walk Rabbit". But need - "jump Rabbit"