栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

理解JAVA中的String类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

理解JAVA中的String类

String类位于 java.lang包中,被final修饰,没有子类

String 是用来放置字符串的,我们通常会这样定义:

        String s="Hello";

这样定义的字符串位于方法区的字符串常量池中,方便下次使用

一、获取字符串的两种方式:【面试】

(1) String str1="hello";

直接通过""获取字符串的形式,在串池中查看是否存在该字符串对象,如果串池中有,则直接使用; 如果串池中没有,则需要在串池中创建对应的字符串对象,串池中字符串用于共享

(2) String str2=new String("world");

通过创建对象形式获取字符串对象,首先在堆空间中完成一个字符串对象的创建,然后再区串池中查看是否存在该 字符串对象,存在-无需创建,不存在-需要在串池完成字符串创建,此获取字符串对象的方式产生1~2个字符串对象

二、String类中常见方法:

        引入:被""引起来一个或是多个字符被称为字符串 字符串底层本质为 char类型数组,字符串的长度等价于底层数组的长度,获取方式:str.length();(方法); 字符串的下标等价于数组,从0开始,最大下标为:长度-1

(1) int length():

获取字符串的长度 【面试常用】

注意:数组获取长度,利用 数组名.length 字符串获取长度,利用 str.length();

(2) char charAt(int index):

根据下标获取对应的字符 【面试常用】

注意:如果指定的下标超过字符串的下标范围,则运行报错,错误信息为: java.lang.StringIndexOutOfBoundsException(字符串下标越界)

String str = "hello"; char c = str.charAt(2);

应用:遍历字符串(获取字符串中每个字符)
        String str = "hello";
        for(int i=0;i
             char c = str.charAt(i);
             // 通过 c 操作每个字符
        }

(3) boolean equals(String str):

比较两个字符串内容是否相等,相等-true,不相等-false

boolean equalsIgnoreCase(String str):

比较字符串内容是否相等,忽略大小写 注意:验证码通常忽略大小写

(4) boolean contains(String str):

判断str在当前字符串中是否包含,包含-true;不包含-false

(5) String toUpperCase():

将字符串中小写字母转换为大写字母 【了解】

String toLowerCase():将字符串中大写转换为小写字母

(6) boolean endsWith(String str):

判断当前字符串是否以str结尾,是-true;不是-false 【了解】

boolean startsWith(String str):判断当前字符串是否以str开头,是-true,不是-false

(7) int indexOf(String s):

如果s在当前字符串中存在,则返回s字符串在当前字符串第一个字符出现下标,如果s在当前字符串 中不存在,则返回-1 【了解-面试编程中涉及】

(8) String trim():将字符串中前后空格去除 【了解】 String str = " hel lo "; System.out.println(str.trim()); // hel lo

实际应用场景:
   String strAge = "18 ";
   // String-> int
   int age = Integer.parseInt(strAge.trim());
   System.out.println(age);

(9) String[] split(String s):

将当前字符串以s进行拆分,拆分之后的结果存储在 String数组中【了解-面试涉及】

String str4 = "hello-java-aa";

String[] ss= str4.split("-");

for(int i=0;i

        System.out.println(ss[i]);

}

三、String的不可变性 【理解-面试】


(1) String字符串为字面值常量,一旦创建不能更改,如果完成String字符串的拼接,先拷贝一个副文本,在副文本的基础上完成字符串拼接

(2) String字符串拼接效率比较低

四、可变长的字符串 【需要大量字符串拼接时应用】

(1) 常用可变长字符串位于java.lang包中:

        a. StringBuffer:jdk1.0版本,线程安全,并发效率低

        b. StringBuilder: jdk5.0版本,线程不安全,并发效率高

(2) 常见的构造方法:

StringBuilder sb = new StringBuilder();// 无参数

StringBuilder sb = new StringBuilder(“hello”);// 有参数

(3) 常见的方法:

         sb.append("字符串"); 拼接字符串

(4) 应用:StringBuffer/StringBuilder为可变长的字符串,所以拼接字符串时效率相对高,如果出现大量字符串拼接,优先考虑 StringBuffer/StringBuilder,而不采用String拼接

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号