Week 1–Part 1笔记总结
实现解码
本周是通过了解加密破解Caesar算法来学习StringBuilder, counting loop,character class,array。这个算法的基本原理是 假设源文本是英文,那加密的时候每个字母都是有固定规律的,如果设置加密的密码为字母表中第17个,通过重组成一个新的字母表,我们可以找到源文本中对应的每个新的字母。(如下图)
算法思路
知识点
-
StringBuilder
- String 创建了之后就是不可变的。
如图,x在s变了之后,它还是hello;而新的s已经是Hello World了,并且这个时候s已经是一个新的地址了。
- StringBuilder的功能:
- 类似专门给string格式的一个容器(Python中的list),把每个字母都放在一个小格子里,所以用append。
- 输出最后的string的时候,要用 sb.toString(), 才能得到string格式的输出。否则 会得到这个object的地址信息。
- String 创建了之后就是不可变的。
-
for循环 如何循序渐进(counting loop)
- 以分号为分界线。第一部分initialization,第二部分 guard, 第三部分increment
- 可以在循环外面创建这个 数字i?(再去查查中文应该怎么翻译)
int i; for(i = 0;i<s.length();i++){...}
- 这样的话,这个i在loop结束之后还可以继续使用!