Java 编程思想 - 第十三章 字符串

第十三章 字符串

  • String对象是不可变的,String类中每一个看起来会修改String对象值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。

1. 重载“+”与StringBuilder

  • String具有只读特性,所有指向它的任何饮用都不可能改变它的值,因此一个引用不会影响其他引用。“+”用来连接字符串,这样的工作方式为了生成最终的字符串,会产生一堆需要垃圾回收的中间对象。(使用重载“+”“+=”可以进行工作,编译器也会自动进行优化使用StringBuilder工作,但是这种优化是有程度限制的。)
  • StringBuilder是JavaSE5引入的,在这之前Java使用的是StringBuffer。后者是线程安全的,因此开销也会大些。

2. String的操作

String s1 = "abc";
String s2 = new String(String s);
String s3 = new String(StringBuilder sb);
String s4 = new String(StringBuffer sb);
String s5 = new String(char[] c);
String s6 = new String(byte[] b);
s1.length();//返回字符串长度
s1.charAt();//获取索引位置上的字符(char)
s1.getChars();//复制char到一个目标数组中
s1.getBytes();//复制byte到一个目标数组中
s1.toCharArray();//返回一个char数组,包含String字符串所有字符
s1.equals();//比较两个字符串是否相同
s1.equalsIgnoreCase();//比较两个字符串是否相同,忽略大小写
s1.compareTo();//比较两个字符串大小,结果为负数,零或者正数
s1.contains();//搜索字符串中是否包含参数类容
s1.contentEquals();//如果该String与参数内容完全一致,则返回true
s1.startWith();//判断字符串是否以参数开头
s1.endWith();//短短字符串是否以参数结尾
s1.indexOf();//返回参数索引位置,从头至尾第一次,没有返回-1
s1.lastIndexOf();//返回参数索引位置,从后至前第一次
s1.subString();//截取字符串
s1.contact();//连接字符串
s1.replace();//用心的字符替换掉字符串的字符
s1.toLowerCase();//转换至小写
s1.toUpperCase();//转换至大写
s1.trim();//两端去空
s1.valueOf();//将参数内容返回字符串
s1.intern();//为每个唯一的字符序列生成一个且仅生成一个String引用
s1.split();//分割字符串

3.格式化输出

System.out.format();//这个方法是模仿c语言的printf()来的格式化输出,与printf()等价。

4.扫描输入

Java SE5新增了Scanner类,Scanner的构造器可以接受任何类型的输入对象,包括File对象、InputStream、String或者Readable对象。Readable是Java SE5中新加入的一个接口。表示“具有read()方法的某种东西。

4.1 Scanner定界符

​ 在默认情况下,Scanner根据空白字符对输入进行分词,但是你可以用正则表达式指定自己所需的定界符。

public class ScannerDelimiter{
  public static void main(String[] args){
  	Scanner sc = new Scanner("12,42,78,99,42");
    sc.useDelimiter("\\s*,\\s*");
    while(sc.hasNextInt()){
      System.out.println(sc.nextInt());
    }
  }
}
/*output:
12
42
78
99
42
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值