字符串——String 的常用方法及注意事项

String自身特点:

String被初始化之后不能被修改的
String s = “first str”;
s = “second str”;
这个过程中,s的引用的地址变了,但是想要改变s之前指向的字符串对象,是无法改变的,只能将s指向新的字符串对象。


String s1 = “abc”;
String s2 = new String(“abc”);
两者有何区别:
第一句有一个对象(“abc”是一个对象)
第二句有两个对象(一个是new出来的对象,一个是“abc”对象)




原因:
    两个而引用指向的对象不一样。
    equals 方法比较的是地址值。但是 String  复写了 Object 中的 equals 方法,String 定义了自己独特的判断相同的规则—— 判断字符串内容是否相同

String s1 = “abc”;
String s2 = new String(“abc”);
String s3 = “abc”;

System.out.println(s1==s2);
System.out.println(s1==s3);
打印结果是:false,true
为什么第二个是true:
由于对于String这种特殊的类,它的字符串对象存储在 常量池内存中,如果常量池中已经存在了“abc”对象,那么如果在创建一个相同的“abc”对象,比较浪费,所以可以 直接用新的引用指向已经存在的“abc”


String 的常用方法:

1、获取
      1.1 字符串中包含的字符数,也就是字符串的长度。
            int   length() :  获取长度

      1.2 根据位置获取位置上的某个字符 (给我位置找字符)
            char  charAt(int index) 

      1.3 根据字符获得该字符在字符串中的位置 (给我ASCII码找位置)
            int  indexOf(int ch) : 返回的是ch在字符串中第一次出现的位置  ,ch是ASCII码
            int  indexOf(int ch,int fromIndex) :从fromIndex开始,获取ch在字符串中出现的位置

            int  indexOf(String str) : 返回的是str在字符串中第一次出现的位置   (给我字符串找位置)
            int  indexOf(String str,int fromIndex) :从fromIndex开始,获取ch在字符串中出现的位置
          (如果没有则返回  -1)

-----------------------------------------------------------------------------------------------------------------

2、判断
     2.1 判断字符串中是否包含一个子串
            boolean  contains(CharSequence str):CharSequence是一个接口,String,StringBuffer和StringBuilder都是他的子类
                   特殊之处:indexOf(String str):可以索引str第一次出现的位置,如果返回-1,表示str不在该字符串中存在,所以也可以用来判断str的是否包含:
                    if(string.indexOf(“aa”)!= -1)
                    所以 indexOf(Stirng  str)既可以获得第一次出现的位置,又可以判断是否存在。

     2.2 字符串中是否有内容
            boolean  isEmpty(): 实际上就是判断字符串长度是否为0
            注意:
                “”与 null  是有区别的:前者是个对象,只不过内容是空,引用还是有指向对象的;而后者引用连指向对象都没有。

     2.3 字符串是否以指定内容开头
            boolean  startsWith(String str)

     2.4 字符串是否以指定内容结尾
            boolean  endsWith(String  str)

     2.5 判断字符串的内容是否相同,复写了Object中的equals()方法
            boolean  equals(String  str)

     2.6 判断字符窜的内容是否相同,并忽略大小写
            boolean  equealsIgnoreCase(String  str)

-----------------------------------------------------------------------------------------------------------------

3.、转换
     3.1 将字符数组转换成字符串
              构造函数:
                  String(char  arr[ ])从数组的开始到最后所有的字符转换成字符串
                  Stirng(char  arr[ ],int  offset,int  count):从数组的第几个字符开始往后选择 count个字符转换成字符串

     3.2 将字符串转换成字符数组
                  toCharArray()

     3.3 将字节数组转换成字符串
                  String(byte  arr[ ])从数组的开始到最后所有的字符转换成字符串
                  Stirng(byte  arr[ ],int  offset,int  count):从数组的第几个字符开始往后选择count个字符转换成字符串

     3.4 将字符串转换成字节数组    ( IO中的字节流中需要将字符流转换成字节流 )
                  getBytes()

     3.5 将基本数据类型转换成字符串
             String  static  valueOf(int num)
             String  static  valueOf(int num,int offset,int count)


-----------------------------------------------------------------------------------------------------------------

4、替换
     4.1 String   replace(char  oldChar,char  newChar)
             注意:
                 1、该方法返回的是一个新字符串, 因为字符串对象是不能被改变的
                           String s = "hello java";
                           String s1 = s.replace("java", "n");
                           System.out.println("s= "+s);
                           System.out.println("s1= "+s1);
                       输出的结果是:
                           s= hello java
                           s1= hello n
                2、 如果要替换的字符不存在,则返回原字符串
                
     4.2  String   replace(String  oldString,String  newString)(与上同理)
  
-----------------------------------------------------------------------------------------------------------------

5、切割
      5.1 String[ ]  split(String  str)   : 返回值是一个字符串数组

                      String name = "zhangsan,lisi,wangwu";
                      String[] arrName = name.split(","); 
                      //长度自动生成
                      for(int i = 0;i < arrName.length;i++){
                              System.out.println("name= "+arrName[ i ]); 
                      }

-----------------------------------------------------------------------------------------------------------------


6、子串
       6.1 获得字符串中的一部分
           String  substring(int  begin) :从指定开头到结尾
           String  substring(int  begin,int  end)  : 包含头,不包含尾


-----------------------------------------------------------------------------------------------------------------

7、转换、去空格、比较
      7.1 将字符串转换成大写或者小写
              String  toUpperCase() 
              String  toLowerCaes()
                 注意:调用这两个方法的字符串没有变,这两个方法返回的是一个新的字符串
      7.2 将字符串 两端多个空格去除
              Stirng  trim()
 
                   String str = " hello java ";
                   String str2 = str.trim(); 
                   System.out.println(str); 
                   System.out.println(str.length()); 
                   System.out.println(str2); 
                   System.out.println(str2.length());
                打印结果为:
                              hello java
                    17
                    hello java
                    10
(这三个方法都返回新的字符串)

                     
      7.3 对两个字符串进行自然顺序的比较

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java中的String类是用于表示字符串的类,它包含许多常用方法来处理字符串,以下是一些常用字符串方法及其返回值: 1. length()方法:返回字符串的长度,即包含的字符数。 2. charAt(int index)方法:返回字符串中指定位置的字符。 3. substring(int beginIndex, int endIndex)方法:返回从指定位置开始到指定位置结束的子字符串,其中beginIndex表示开始位置(包含),endIndex表示结束位置(不包含)。 4. indexOf(char ch)方法:返回指定字符在字符串中第一次出现的位置,如果不存在则返回-1。 5. indexOf(String str)方法:返回指定字符串字符串中第一次出现的位置,如果不存在则返回-1。 6. replace(char oldChar, char newChar)方法:用指定的新字符替换字符串中所有的旧字符,并返回替换后的新字符串。 7. replaceAll(String regex, String replacement)方法:用指定的新字符串替换字符串中符合正则表达式的所有子串,并返回替换后的新字符串。 8. toUpperCase()方法:将字符串中的所有字母转换为大写字母,并返回新字符串。 9. toLowerCase()方法:将字符串中的所有字母转换为小写字母,并返回新字符串。 10. trim()方法:去除字符串两端的空格,并返回新字符串。 以上这些方法String类中常用的一些字符串方法,能够满足大多数字符串操作的需求。 ### 回答2: Java中的String类是非常重要的一个类,常用于存储和操作字符串,其中字符串长度是一个基本概念。String类中提供了一些常用方法来获取字符串长度。 1. length()方法:该方法返回一个字符串的长度,即字符串中字符的个数。例如: ```java String str = "Hello World!"; int len = str.length(); ``` 上面的代码中,len的值为12,因为字符串中一共有12个字符。 2. isEmpty()方法:该方法返回一个布尔值,判断一个字符串是否为空。如果一个字符串的长度为0,则认为它是空的。例如: ```java String str = ""; boolean isEmpty = str.isEmpty(); ``` 上面的代码中,isEmpty的值为true,因为str是一个空字符串。 3. trim()方法:该方法去除字符串两端的空格,并返回去除空格后的字符串。例如: ```java String str = " Hello World! "; str = str.trim(); ``` 上面的代码中,在执行str.trim()方法之后,str的值变为了"Hello World!",去除了两端的空格。 4. getBytes()方法:该方法返回一个字节数组,表示该字符串中每个字符的字节编码。例如: ```java String str = "Hello World!"; byte[] bytes = str.getBytes(); ``` 上面的代码中,bytes的长度为12,因为字符串中一共有12个字符,每个字符占用1个字节。 5. length vs length():需要注意的是,length和length()虽然都可以用来获取字符串长度,但是它们的返回值类型不同。length是一个数组的属性,返回该数组的长度;而length()是String类的方法,返回字符串的长度。因此,我们需要根据具体的情况选择使用哪个方法。 在实际开发中,我们会频繁地使用到这些方法,进行字符串长度的计算和判断,从而达到我们想要的程序效果。 ### 回答3: Java中的字符串是一种非常常见的数据类型,可以使用String类来创建和处理字符串。其中,字符串长度是String类中的一个非常基本的方法,对于字符串的处理和操作都有着非常重要的意义。 字符串长度可以通过调用String类中的length()方法来获取。该方法返回的是一个整数值,表示该字符串中字符的数量,包括空格和特殊字符。例如,对于下面的字符串String str = "Hello World!"; 调用str.length()方法将返回整数值12,它是该字符串中字符的数量。如果该字符串为空字符串,即“”,那么调用方法将返回整数值0。 在实际的开发中,字符串长度的获取非常常见,比如在字符串的截取、比较、连接等操作中都需要用到字符串长度。另外,在一些具有字符个数限制的场景中(如数据库中的字段),该方法也可以用来判断字符串的长度是否符合规定。 除了length()方法,还有一个类似的属性可以获取字符串的长度,就是String类中的length属性。该属性是一个final类型的整数,通过直接访问该属性可以获取字符串的长度。例如: String str = "Hello World!"; int len = str.length; 调用str.length将返回整数值12,它等价于调用str.length()方法。不过,需要注意的是,该属性是final类型的,即一旦获取了长度值,就不能再修改了。 因此,对于字符串的操作和处理中,获取字符串长度是一项非常基本的操作。Java中提供了String类中的length()方法和length属性来获取字符串的长度,能够满足我们大部分的需求。对于需要频繁使用的场景,也可以将获取到的长度值存储在变量中,以便下次使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值