java学习-字符串

敲黑板!去练习!
要熟能生巧呀,不然一直看着代码也不会用呀
内容包括toString方法、equals和==的区别、append函数、charAt方法等。


1.返回该对象的字符串表示:toString方法

说明:
可以将StringBuffer类型转换为String类型;
这个方法必须要一个已实例化的对象才能调用;

2.equals和==的区别

== 比较的是指向对象的内存地址;
equals() 通常情况下也会比较内存地址;
一些类如String()改写了equals()方法,比较的是String对象的值,而不是内存地址;
不同类型引用的 == 比较,会出现编译错误,不能比较;
equals方法,会先比较类型;
包装类的“==”运算在不遇到算术运算的情况下不会自动拆箱。

3.append函数:想在字符串后面追加字符或字符串

说明:
Stringbuffer有append()方法;
Stringbuffer其实是动态字符串数组;
append()是往动态字符串数组添加,跟“xxxx”+“yyyy”相比,相当那个‘+’号;
String1+String2 和Stringbuffer1.append(“yyyy”) 虽然打印效果一样,但在内存中表示却不一样,String1+String2 存在于不同的两个地址内存,Stringbuffer1.append(Stringbuffer2)放在一起;

4.对象调用toString方法报错:记得声明对象不要在for循环里声明啊……位置啊位置!

5.charAt方法:用于返回指定索引处的字符。

说明:
Java String类;
语法charAt(int index);
返回指定索引处的字符;

这次做的题:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

解答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Solution {
public String replaceSpace(StringBuffer str) {
if(str == null){
return null;
}
StringBuffer nStr = new StringBuffer();
for(int i = 0;i < str.length();i++){
if(str.charAt(i) == ' '){
nStr.append("%20");
}
else{
nStr.append(str.charAt(i));
}
}
return nStr.toString();
}
}