黑马程序员技术交流社区
标题: Java基础学习 第14天(3) [打印本页]
作者: luguoyuanf 时间: 2013-4-6 21:56
标题: Java基础学习 第14天(3)
6.3.3字符串常见功能:转换
1) 将字符串转成字节数组
public byte[] getBytes()
此功能目前用不到,什么时候使用,在IO流中会用
代码样式:
Strings1 = “23”;
byte[]b = s1.getBytes();
for(int x=0;x<b.length;x++){
System.out.println(b[x]);
}
2) 将字符串转成字符数组
public char[] toCharArray()
将字符数组转成字符串怎么转 构造方法 new String(char[] ch)
代码样式:
Strings1 = “asdfgg”;
char[]ch = s1.toCharArray();
for(intx=0;x<ch.length;x++){
System.out.println(ch[x]+” ”);
} //打印结果:as d f g g
3) 将字符串进行大小写转换 原始字符串不变
public StringtoUpperCase()转成大写
publicString toLowerCase()转成小写
代码样式:
Strings1 = “asdad”;
System.out.println(s1.toUpperCase()); //转换大写
System.out.println(s1.toLowerCase()); //转换小写
4) 将字符数组转成字符串
public static String copyValueOf(char[] ch)
代码样式:
char[] ch11 ={'2','3','d'};
Strings12 = String.copyValueOf(ch11);
System.out.println(s12);
5) 将基本数据类型转成字符串 int long float double charboolean 对象
public static String valueOf(基本类型)
代码样式:
inti = 50; 将整数类型转换成字符串
Strings1 = String.valueOf(i);
System.out.println(s1);
double d = 50.22; 将double类型转换成字符串
Stringd1 = String.valueOf(d);
System.out.println(d1);
public static String valueOf(char[] ch) 将字符数组转换成字符串
char[] c1 = {'1','4','g'};
Stringc2 = String.valueOf(c1);
System.out.println(c2);
作者: luguoyuanf 时间: 2013-4-6 21:58
6.3.4 字符串排序
1) 原理:字符串本身不能排序,需要将字符串转换成数组,对数组进行排序再打印数组的结果.
2) 步骤:
(1) 字符串转成字符数组toCharArray().
(2) 对字符数组进行排序.
(3) 排序好的字符数组转换成字符串.
3)代码样式:
public class StringTest {
publicstatic void main(String[] args) {
Strings = "zqwertyu";
char[]ch1 = toArray(s);
char[]ch2 = sortChar(ch1);
Strings1 = toString(ch2);
System.out.println(s);
System.out.println(s1);
}
publicstatic char[] toArray(String st) {
returnst.toCharArray();
}
publicstatic char[] sortChar(char[] s) {
for(int x = 0; x < s.length - 1; x++) {
for(int y = x + 1; y < s.length; y++) {
if(s[x] > s[y]) {
swap(s,x, y);
}
}
}
returns;
}
publicstatic void swap(char[] ch, int x, int y) {
chartemp = ch[x];
ch[x]= ch[y];
ch[y]= temp;
}
publicstatic String toString(char[] ch) {
returnString.valueOf(ch);
}
}
作者: luguoyuanf 时间: 2013-4-6 21:59
6.3.5 字符串常见功能:切割,替换,去空格
1) 切割字符串 "shisongonly@163.com"
public String[] split(String reg)
代码样式:
String s1 = "192.168.0.1";
String[] s2 = s1.split("\\.");
for (int x=0 ;x<s2.length;x++){
System.out.print(s2[x]+" ");
} 打印结果:192 168 0 1
2) 替换字符串
public String replace(oldchar , newchar)
代码样式:
System.out.println();
String s3 = "helloworld";
String s4 = s3.replace('o', '0');
System.out.print(s4);
System.out.println();
//打印结果 hell0w0rld(将字符串中所有的o都转换成0)
3) 去掉字符串两端空格
public String trim()
代码样式:
String s5 = " ad dd ";
String s6 = s5.trim();
System.out.println(s5);
System.out.println(s6);
打印结果:
ad dd //打印s5
ad dd //将前后空格都去除了,在登陆框中的用户名处常用
4) 按照字典顺序比较字符串
public int compareTo(String)
代码样式:
String s7 = "asdasd";
String s8 = "asdasdasd";
System.out.println(s7.compareTo(s8));
//打印结果:-3
//相当于s7长度-s8长度,所以这里等于-3
作者: luguoyuanf 时间: 2013-4-6 22:00
6.3.6 StringBuffer字符串缓冲区
1) 其实这个对象,就是一个容器,我们将数据,方到这个容器中,进行管理(可以理解为面盆原理)
2) StringBuffer中的添加字符串的方法:
append() 在字符串后面添加内容
代码样式:
StringBuffer work = new StringBuffer();
//方法调用链,链式编程
work.append("abc").append(false);
insert(index,String)指定位置插入字符串
代码样式:
String work = “asdd”;
work.setCharAt(2, 'A');
System.out.println(work);
//打印结果:asAdd(第2角标位置插入A)
setCharAt(index, char)修改指定位置上的字符
代码样式:
代码样式:
String work = “asdd”;
work.setCharAt(2, 'A');
System.out.println(work);
//打印结果:asAd(第2角标位置修改为A)
delete(start , end) 删除区间内的字符串
代码样式:
String work = “asdd”;
work.delete(1,3);
System.out.println(work);
//打印结果:ad(去头部去尾)
deleteCharAt(index) 删除指定位置上的字符
代码样式:
String work = “asdd”;
work.deleteCharAt(2);
System.out.println(work);
//打印结果:asd
作者: luguoyuanf 时间: 2013-4-6 22:00
6.3.7 StringBuffer
1)String类是否能被继承?
不能,因为String类被final修饰了
2)StringBuffer和String的区别:
StringBuffer是一个字符串的缓冲区,String是一个描述字符串的类.但是,StringBuffer缓冲区中数据可以被修改的,在效率上明显高于String.日后开发中,建议使用StringBuffer
3) StringBuffer和 数组有什么区别
数组的长度是固定的
StringBuffer的长度是可变的
数组中的数据类型是固定的
StringBuffer中可以接受任意类型参数,但结果都变成了字符串
6.3.8 StringBuilder
1)StringBuilder和StringBuffer区别:
StringBuffer是线程安全的
StringBuilder 线程不安全
线程安全的,往往效率很低
线程不安全的,往往效率高
我们一般开发程序,都是单线程,建议使用效率高的,不安全的StringBuilder
要是开发多线程的程序,建议使用线程安全的,但是效率低点的StringBuffer
作者: 洪运成 时间: 2013-4-7 10:00
luguoyuanf 发表于 2013-4-6 22:00
6.3.7 StringBuffer 1)String类是否能被继承? 不能,因为String类被final修饰了 2)Strin ...
:handshake 奋头
作者: 洪运成 时间: 2013-4-7 10:01
奋斗!!!!
作者: mk7 时间: 2013-4-7 10:10
学习的榜样
作者: luguoyuanf 时间: 2013-4-7 15:52
洪运成 发表于 2013-4-7 10:01
奋斗!!!!
加油,一起奋斗!
作者: luguoyuanf 时间: 2013-4-7 15:53
mk7 发表于 2013-4-7 10:10
学习的榜样
互相学习:)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |