第一天的总结
编程内容
1.二维数组的查找
从上到下,从左到右递增的数组中查找元素。
思路
要点是选择左下的元素作为遍历开始,其他部分没有多余要说的,较简单。
2.空格替换(字符串)
将字符串中的空格转换为“%20”。
思路
问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字符串做替换!
问题2:在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。
从前往后替换,后面的字符要不断往后移动,要多次移动,所以效率低下
从后往前,先计算需要多少空间,然后从后往前移动,则每个字符只为移动一次,这样效率更高一点。
2先确定字符串中空格的个数,简单的循环遍历即可(编程时,出现了将str.length()后的括号漏掉的情况)
3分别用变量记录字符串转换前后的长度,由此得出替换前字符串下标和替换后的下标
4从后向前遍历,if判断替换。(在此之前,需要先扩大字符串的长度至替换后,防止下标越界:str.setLength(newlength)😉
知识点
1关于String,StringBuffer,StringBuilder类的区别和各自定义
https://www.cnblogs.com/su-feng/p/6659064.html
https://www.cnblogs.com/liu-chao-feng/p/5636063.html
2StringBuffer的append()方法
http://www.runoob.com/java/java-stringbuffer.html
Stringbuffer 有append()方法
Stringbuffer其实是动态字符串数组
append()是往动态字符串数组添加,跟“xxxx”+“yyyy”相当那个‘+’号
跟String不同的是Stringbuffer是放一起的
String1+String2 和Stringbuffer1.append("yyyy")虽然打印效果一样,但在内存中表示却不一样
String1+String2 存在于不同的两个地址内存
Stringbuffer1.append(Stringbuffer2)放再一起
2字符串中的相关方法(今天用到的)
http://www.runoob.com/java/java-stringbuffer.html
字符串中的元素(位置):str.charAt(int);
toString()方法对于字符串类型是原值返回
其他
关于排序算法的相关知识
https://www.cnblogs.com/yuanshuang/p/5783558.html