BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #37147同步于 2014/12/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

请教个字符串数组处理问题

byrdezyp
2014/12/17镜像同步10 回复
String [] s1 = {"1", "2", "3", "4"}; String [] s2 = {"5", "6", "7", "8"}; String [] s3 = {"9", "10", "11", "12"}; String s4 = new String[4]; 我想利用s1 s2 s3把s4打造成s4 = {"15", "18", "21", "24"}, 该如何操作。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
byrdezyp机器人#1 · 2014/12/17
【 在 icyfox 的大作中提到: 】 : ... : for i 0 to 3{ : s4[i] = s1[i] + s2[i] + s3[i]; : ................... 这样加出来不是{"159", "2610", "3711", "4812"}吗?
wuzhi1234机器人#2 · 2014/12/17
parsein转换为数字,加起来再转换为字符串?
byrdezyp机器人#3 · 2014/12/17
【 在 wuzhi1234 的大作中提到: 】 : parsein转换为数字,加起来再转换为字符串? 应该能实现
icyfox机器人#4 · 2014/12/17
(Integer.parse(s) ....... ) + ""; 【 在 byrdezyp (zhangyc) 的大作中提到: 】 : 这样加出来不是{"159", "2610", "3711", "4812"}吗?
nuanyangyang机器人#5 · 2014/12/17
炫耀一下Scala val a = Seq("1", "2", "3", "4") val b = Seq("5", "6", "7", "8") val c = Seq("9", "10", "11", "12") val d = for(((x, y), z) <- ((a zip b) zip c)) yield Seq(x,y,z).map(_.toInt).sum.toString // 还有更简单的: val d2 = Seq(a,b,c).transpose.map(_.map(_.toInt).sum.toString)
icyfox机器人#6 · 2014/12/17
我擦底下那是啥 one line xxx? 【 在 nuanyangyang (暖羊羊) 的大作中提到: 】 : 炫耀一下Scala : [code=scala] : val a = Seq("1", "2", "3", "4") : ...................
nuanyangyang机器人#7 · 2014/12/18
【 在 icyfox 的大作中提到: 】 : 我擦底下那是啥 : one line xxx? : 就是几个函数的合用。 transpose, 把二维数组转置(行列互换),这样可以把同一列放在一起。 map:把一个函数应用到所有元素。可以多级map联用,用于多维数组 toInt和toStr就是整数和字符串互相转换了。 sum用于求和。 所以,就是 Seq(a,b,c).transpose.map(row => row.map(elem => elem.toInt).sum.toString) 换一种写法 val matrixByRow = Seq(a,b,c) val matrixByColumn = matrixByRow.transpose val result = for (columnOfStrings <- matrixByColumn) yield { val columnOfInts = for (elem <- columnOfStrings) yield elem.toInt val columnSum = columnOfInts.sum val sumAsString = columnSum.toString sumAsAtring // for语句里边的返回值 }
sun111机器人#8 · 2014/12/18
【 在 byrdezyp 的大作中提到: 】 : String [] s1 = {"1", "2", "3", "4"}; : String [] s2 = {"5", "6", "7", "8"}; : String [] s3 = {"9", "10", "11", "12"}; : ................... 是这样吗? import java.util.*; public class Test { public static void main(String args[]) { String s1[] = {"1","2","3","4"}; String s2[] = {"5","6","7","8"}; String s3[] = {"9","10","11","12"}; String s4[] = new String[4]; int j; for(int i = 0 ; i < s1.length; i++) { j = Integer.parseInt(s1[i]) + Integer.parseInt(s2[i]) + Integer.parseInt(s3[i]); s4[i] = String.valueOf(j); } System.out.println(Arrays.toString(s4)); } }
sgoal机器人#9 · 2014/12/22
这样也可以 public class Test { public static void main(String args[]) { String s1[] = {"1","2","3","4"}; String s2[] = {"5","6","7","8"}; String s3[] = {"9","10","11","12"}; String s4[] = new String[4]; int j; for(int i = 0 ; i < s1.length; i++) { j = s1[i].charAt(0)-'0' + s2[i].charAt(0)-'0' + s3[i].charAt(0)-'0'; s4[i] = String.valueOf(j); } System.out.println(Arrays.toString(s4)); } } 【 在 sun111 的大作中提到: 】 : 是这样吗? : import java.util.*; : public class Test : ...................