前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础-字符串

Java基础-字符串

作者头像
用户5252199
发布2022-04-18 14:11:52
2750
发布2022-04-18 14:11:52
举报
从概念上讲,Java字符串就是Unicode字符序列,Java没有内置的字符串类型,而是在标准java类库中提供了一个预定义类,很自然的叫做String,每个用双引号扩起来的字符串都是String类的一个实例
代码语言:javascript
复制
String str = “my name”

1 :子串

String类的substring方法可以从一个较大的字符串中提取出一个子串,例如:

代码语言:javascript
复制
String str = “hello”;
string s = str.substring(0,3);

首先声明了一个 str 字符串 为 “hello” , 之后,通过substring类截取 0 -2 的字符也就是 h e l 第三位是要截取到的位置,但不会去截取

2 :拼接

Java 中字符串的拼接可以使用 + 号来连接两个或者多个字符串

3 :字符串的不可变性

String 类没有提供用于修改字符串的方法,如果要“修改”字符串,可以通过String内置的方法来处理字符串,但是,处理之后,将会生成另一个字符串

为了了解字符串的具体工作方式,我们可以想象将各种字符串存放在公共的存储池中,字符串变量指向存储池中相应的位置,如果复制一个字符串变量,原始字符串与复制的字符串共享相同的字符。

Java的设计者认为共享带来的高效率远远胜过于提取,拼接字符串所带来的低效率

4 :字符串的检查

java中可以使用 equals 方法检测两个字符串是否相等。

如果要比较两个字符串是否相等,而不区分大小写。可以使用 equalsIgnoreCase方法

不能使用 == 运算符检测两个字符串是否相等。这个运算符只能够确定两个字符串是否放置在同一个位置上,如果字符串放置在同一个位置上,它们必然相等,但是,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。

比如:

代码语言:javascript
复制
String str = “hello” ;
if(str == “hello”){ true; }
if(str.substring = “hel”){false}

在第一条中,我们声明了一个字符串常量str ,那么跟hello时相同的

在第二条中我们通过substring类处理了str字符串,这时候str.sunstring 生成的是一个 String 的引用地址

源码 :

代码语言:javascript
复制
public String substring(int beginIndex, int endIndex) {
  if (beginIndex < 0) {
  throw new StringIndexOutOfBoundsException(beginIndex);
    }
  if (endIndex > value.length) {
  throw new StringIndexOutOfBoundsException(endIndex);
    }
  int subLen = endIndex - beginIndex;
  if (subLen < 0) {
  throw new StringIndexOutOfBoundsException(subLen);
    }
  return ((beginIndex == 0) && (endIndex == value.length)) ? this
  : new String(value, beginIndex, subLen);
}

5 :空串与NULL串

空串 “” 是长度为0的字符串可以用以下代码判断是否为空

代码语言:javascript
复制
if(str.length == 0)或者 if(str.equals(“"))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据技术博文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档