Java字符串(String)总结

25 篇文章 0 订阅

String(字符串)

Java 没有内置的字符串类型, 而是在标准 Java 类库中提供了一个预定义类,很自然地叫做 String。每个用双引号括起来的字符串都是 String类的一个实例:
String e = “”; // an empty string
String greeting = “Hello”;

获得子串

String greeting = "hello";
String s = greeting.substring(0, 3);	//第1个参数是开始位置,第2个参数是子串长度,第2个参数忽略则取到字符串的结尾。

拼接

可以使用+号拼接两个字符串。

String s1 = "abc";
String s2 = "def";
String s = s1 + s2;

当一个字符串与一个非字符串进行拼接时,后者被转化成一个字符串。(任何一个Java对象都可以转换成一个字符串)。

int age = 13;
String rating = "PG" + age;
double ans = 3.14159;
System.out.println("The answer is:" + ans);

不可变字符串

String类没有提供用于修改字符串的方法(和c++中的string不同)。如果想将字符串变量greeting = “Hello"修改成"Help!”,则可以使用如下方法:

String greeting = "Hello";
greeting = greeting.substring(0,3) + "p!";

不可变字符串有一个优点:编译器可以让字符串共享。

检测相等

可以使用equals方法检测两个字符串是否相等:s.equals(t),相等返回true,不等返回false。
例如:

String greeting =  "Hello";
"Hello".equals(greeting);
"Hello".equalsIgnoreCase("hello");	//检测两个字符串是否相等,不区分大小写

注意:一定不能用==运算符检测两个字符串是否相等,这个运算符只能确定两个字符串是否放置在同一个位置上。(有可能相同的字符串不放在同一个位置上)

空串与Null串

空串是长度为0的串,可以通过以下代码检测:
if (str.length() == 0)if (str.equals(""))
要检测一个字符串是否为null可以使用以下方法:
if (str == null)

常用方法

  • char charAt(int index)
    返回给定位置的代码单元。
  • int indexOf(String str)
    int indexOf(String str, int fromIndex)
    返回与字符串str匹配的第一个子串开始的位置。这个位置从索引0或fromIndex开始计算。无法匹配则返回-1。
  • String trim()
    返回一个新字符串。这个字符串不包括原字符串头部和尾部的空格。
  • String replace(CharSequence oldString, CharSequence newString)
    String replaceAll(String oldString, String newString);
    返回一个新字符串。这个字符串用newString代替原始字符串中所有oldString。可以用String或StringBuilder对象作为CharSequence参数。replaceAll中则可以使用正则表达式作为参数。

可变字符串

  • StringBuffer
    (字符串加减,同步,性能好)
  • StringBuilder
    (字符串加减,不同步,性能更好

常用方法:

  1. StringBuilder()/StringBuffer()
    构造一个空的字符串构造器
  2. append(string) / append(char)
    在字符串末尾添加并返回this
  3. StringBuilder insert(int offset,String str)
    在offer字段插入一个字符串并返回this
  4. StringBuilder delete(int startindex,int endlndex)
    删除偏移量从startindex-endIndex-1的代码单元并返回this
  5. String toString()
    返回一个与构建器或缓冲器内容相同的字符串
  6. length()返回实际大小,capacity()返回实际占用空间大小。
    一旦length()大于capacity(),则capacity在原来的基础上先+1再乘2。

参考《java core》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值