java学习笔记--字符串

10.4 类的关系
- 关联
- 聚集和组合


10.7 基本数据类型值作为对象处理
- java为基本数据类型提供了Boolean、Character、Double、Float、Byte、Short、Integer和Long等包装类。这些包装类都打包在java.lang包里。
- 既可以用实际类型值也可以用表示数值的字符串来构造包装类。


```
new Double(5.0);new Double("5");
```


- 数值包装类没有无参数构造方法,所有包装类的实例都是不可改变的,这意味着一旦创建对象后。它们内部值就不能再改变。
- 每一个数值包装类都有常量MAX_VALUE、MIN_VALUE
- string类中compareto方法用于比较两个字符串
- 数值包装类有一个有用的静态构造方法valueof(string s)。该静态方法返回一个新对象,并将它初始化为指定字符串表示的值。
- 包装类中都有一个把字符串转换为一个int值的方法。有两个重载方法,将数值转换为10进制或为指定值为基数的(例如:2进制,8进制,16进制)的数值


```
String s = "8";


byte b = Byte.parseByte(s);
short t = Short.parseShort(s);
int i = Integer.parseInt(s);
long l = Long.parseLong(s);
Float f = Float.parseFloat(s);
Double d = Double.parseDouble(s);
boolean bo = Boolean.parseBoolean(s);
```


10.9 BigInterger(string)和BigDecimal(string)
- 这两个类可以用于表示任何大小和精度的整数或者十进制数
- 在java.math包中,他们都是不可变的


```
System.out.println("50!  number:");
BigInteger in = BigInteger.ONE;
for (int i = 1; i <= 50; i++) {
in = in.multiply(new BigInteger(i + ""));
}
System.out.println(in);
这个程序表示50!
```


```
System.out.println(new BigInteger("1"));
运行成果:1
```


10.10 string类
- 字符串一旦被创建,内容就不可以被改变
- 构造字符串3种方法:


```
String ye = new String("yezi");
String zi = "yezi";
char[] yy = { 'y', 'z' };
String zz = new String(yy);
```
限定字符串:
java虚拟机对具有相同字符序列的字符串直接量使用同一个实例,这样的实例称为限定的字符串。(指向同一个对象)


```
String ye = new String("yezi");
String zi = "yezi";
String yy = "yezi";
System.out.println("ye == zi " + (ye == zi));
System.out.println("zi == yy " + (zi == yy));
运行结果:
ye == zi false
        zi == yy true
```
字符串的替换和分隔:
- string类的方法


```
    +replace( char , newchar )            将字符串中所有匹配的字符换成新的字符,然后返回新的字符串
    +replaceFirst( string , new string )  将字符串中第一个匹配的字符串替换成新的字符串,然后返回新的字符串
    +replaceAll( string , new string )    将字符串中所有匹配的字符串替换成新的字符串,然后返回新的字符串
    +split( string )                      返回一个字符数组,其中包含被分隔的字符串集
```


正则表达式(matches):
- 定义:是一个字符串,用于描述匹配一个字符串集的模式。可以通过某种模式来匹配、替换或分隔一个字符串。


```
字符串.* :以字符串开头后面紧跟着0或者多个字符。
"java is fun ".matches("java.*");
\\d{n} :表示n个数字位
"400-20-4561".matches("\\d{3}-\\d{2}-\\d{4}");
正则表达式与replace一起使用
        String s = "a+b$c!".replaceAll("[+$!]", "nnn");
System.out.println(s);
运行结果:annnbnnncnnn
正则表达式和spilty一起使用
        String []y="java.c,c#?c++".split("[.,?.!]");
for(String a:y)
System.out.print(a+" ");
        运行结果:java c c# c++ !

```


字符串与数组之间的转换:
- 把字符串转换为数组可以使用toCharArray()方法
- 还可以使用getchars(int a, int b, char[] c, int d)方法
- 还可以使用string(char[])的构造方法


```
        char[] c = { 'a', 'v', 's', 'f' ,'d'};
char[] y = "java".toCharArray();
"sedf".getChars(0, 2, c, 3);   //表示"sedf"从0到2-1的字串"se"复制到数组从3开始的地方
String str = new String(new char[] { 'a', 'b' });
String str1 = String.valueOf(new char[] { 'a', 'b' });
```
将字符和数值转换成字符串:
- 利用重载的valueOf()方法,返回一个字符串,该方法适用于所有类型
- 还可以使用parseDouble()、parseInt()方法
格式化字符串:
- string的静态方法string.format()
- 也可以使用system.out.printf()


10.11 StringBuffer和StringBuilder类
- 只要用到字符串的地方就可以使用这两个类
- 这两个类不同于string类的是:它们可以添加、插入、或者追加新的内容
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值