黑马程序员技术交流社区
标题:
新人技术贴,学了几天的渣渣,不喜勿扰,不喜勿喷,谢谢!
[打印本页]
作者:
笃行呀
时间:
2018-12-15 23:11
标题:
新人技术贴,学了几天的渣渣,不喜勿扰,不喜勿喷,谢谢!
本帖最后由 笃行呀 于 2019-2-13 11:17 编辑
//
计算一个嵌套的子列表结构中多个数字的总和
//[1, [2, [3, 4], 5], 6, [7, 8]]
本题来自其他帖子,因为个人喜欢找点题目敲敲,敲完有感,所以在此分享给大家
话不多说,上代码:
String s =
"[1, [2, [3, 4], 5], 6, [7, 8]]"
; //首先按题目要求把这个字符串定义出来
String st =
""
; //这个是用来接收被挑出来的字符重新组成字符串,后面重新对它进行处理
for
(
int
i =
0
; i < s.length(); i++) { //用for循环把这个字符串全部遍历出来,然后挑出其中的数字字符
if
(s.charAt(i) >=
'0'
&& s.charAt(i) <=
'9'
) { //这个判断就是挑出字符串中的数字字符,用到了字符本身储存在计算机中对应的有一个数字的知识,">=","<="本身就是二 元运算符,所以在这里判断字符串中的字符是否是0-9的数字字符,中间存在着一个数据类型的转换,所以可以 这样写,ASCII码表中有对应的字符代表的数字,不熟悉的童鞋可以去了解一下 st += s.charAt(i); //这里就是之前创建的空字符串,然后累加,字符串之间的"+"号是一种连接,每次的连接,"加等于"都相当于把连接之后新的字符串重新赋值给"st"
}
}
byte
[] arr = st.getBytes(); //这里用到字符串的一个方法,可以通过JDK_API查询,就是把一个字符串转化为一个byte数组,里面的元素是字符串中每个字符元素对应的数值
int
num =
0
; //创建一个变量,用来接收题意中说的所有数字的和
for
(
int
i =
0
; i < arr.
length
; i++) { //遍历byte数组中所有的元素,每个元素都是原先数字字符对照ASCII码表中的数值
int
n = arr
-
'0'
;
//"="右边的是遍历出来的数字字符对照ASCII码表中的数值,0-9因为是连着的,所以用数字字符数值减去字符'0',那么得到的就是这个数字字符本身的数值
num += n; //这里把它们累加起来
}
System.
out
.println(
"
这串字符串中数字的总和是
:"
+ num); //输出因为敲这道题之前本人自己也是一知半解,睡前在床上敲了一会就瓶颈了,晚上思来想去,第二天起床我的室友一语点醒了我,所以有感而发...在此,小弟献丑了,望各路大神不舍赐教!!!
作者:
笃行呀
时间:
2018-12-15 23:16
排列发出来很有问题, 有兴趣的复制出去试试看
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2