• java基础string操作


    String类及String类的相关操作方法,this关键字,static关键字,内部类

    (1)String的两种实例化方式

    public String(String origiral)///可以接收一个String类的对象,并重新实例化String对象,除了此方法之外String还可以采用直接赋值的方式进行对象的实例化。

    public class StringDemo01{

           public static void main(String args[]){

                  String str1 = "hello" ;     // 使用直接赋值的方式完成

                  String str2 = new String("MLDN") ;     // 通过构造方法完成

                  System.out.println(str1 + str2) ;    // 进行字符串的连接操作

           }

    };

    (2)String的比较方式

      public class StringDemo02{

           public static void main(String args[]){

                  String str1 = "hello" ;     // 使用直接赋值的方式完成

                  String str2 = new String("hello") ; // 通过构造方法完成

                  String str3 = str2 ;  // 通过构造方法完成

                  System.out.println("str1 == str2 --> " + (str1==str2)) ;      // false

                  System.out.println("str1 == str3 --> " + (str1==str3)) ;      // false

                  System.out.println("str2 == str3 --> " + (str2==str3)) ;      // true

           }

    };

    = =”实际上比较的是两个对象的地址是否相等,具体的是比较地址的值,因为地址是以数值的形式存在的。

     但是如果需要比较字符串的内容,就需要使用String类中的equals()方法完成比较:

       public boolean equals(String str)

    以上程序修改为str1.equals(str2)

    (3)一个字符串实际上就是String的匿名对象

    一个字符串使用" "括起来,那么一个字符串常量实际上本身就属于String的一个匿名对象

    (4)String的两种实例化方式的区别

    String str1="hello"///表示在堆中开辟一个空间并将该空间地址赋值给栈中的str1

    String str1=new String("hello")///表示先在堆中开辟一个字符串的匿名对象,然后在用new开辟一片新的空间,并将原对象值赋值给新的空间中,并将新开辟的空间地址赋值给栈内的str1,而原来的匿名对象所在空间为垃圾空间

    public class StringDemo05{

           public static void main(String args[]){

                  String str1 = "hello" ;     // 使用直接赋值的方式完成

                  String str2 = "hello" ;     // 使用直接赋值的方式完成

                  String str3 = "hello" ;     // 使用直接赋值的方式完成

                  System.out.println("str1 == str2 --> " + (str1==str2)) ;

                  System.out.println("str2 == str3 --> " + (str2==str3)) ;

                  System.out.println("str1 == str3 --> " + (str1==str3)) ;

           }

    };

    结构输出的都是true,表示的是同一个空间引用,因为对于String来讲使用直接赋值的方式会在字符串池中保存,如果之后再声明字符串的时候发现内容一样,则不会重新开辟空间,而是从内存池中取出数据继续使用。

    (5)字符串的内容声明后则无法修改

    public class StringDemo06{

           public static void main(String args[]){

                  String str = "hello" ;//在堆中生成一个空间,将空间地址赋值给str

                  str += " world" ;//表示先开辟一个String的匿名对象,保存在新的空间中,然后将两String连接保存在另外的一个新的空间中,最后将新空间的地址值赋值给strstr原指向断开

                  System.out.println(str) ;

           }

    };

    栈内存

     

    堆内存

     

     


    Hello word

    word

    hello

    str

     

     

     

     

     

     

     

     

    (6)String类的常用操作方法

       char  charAt(int  index)//根据字符串中的索引找到指定位置的字符

       public char[] toCharArray()//将字符串变为字符数组

       public  String(char[] value)//将全部的字符数组变为String类型

       public  String(char[] valueint  offestint count )//将数组中的offest起始位置开始,长度为count的字符转换为数组

       String  concat(String  str)//字符串的链接也可以用+号连接

    (7)将字符串与字节数组

       public  byt[] getBytes()//将字符串变为字节数组

       public  String(byte[] bytes)//将字节数组全部变为字符串

       public  String(byte[]  bytesint  offset ,int  length)//将字节数组的offset开始,长度为length变为字符串

    (8)判断是否以指定的字符串开头或结尾

    public  boolean  startsWith(String  prefix)//判断是否指定的字符串开头

    public  boolean  endsWith(String  suffix)//判断是否以指定的字符串结尾

    (9)替换操作

    public  String  replaceAll(String  regexString  replacement)//将字符串中的regex采用replacement替换

    (10)字符串截取

    public  String  substring(int  beginIndex)//beginIndex开始全部截取

    public  String  substring(int  beginIndexint  endIndex)//beginIndex开始到endIndex进行截取

    (11)字符串拆分

    public String[] splitString  regex//按照字符串regex拆分成字符串数组,如果两个引号见什么都不写则全部拆分

    (12)字符串查找

    public  int  indexOf(String  str)//查找指定字符串的位置,如果查找不到返回-1,查找到返回0

          if(str.indexOf(str2)!=-1)//返回的值不等于-1则查找到

    public  int  indexOf(String  strint fromIndex )//fromIndex开始查找str的位置

    public  boolean  contains(String s)//查找指定的字符串,返回值我truefalse

    (13)字符串的其他操作

    public  String  trim()//去掉左右空格

    public  int  length()//取得字符串长度

    public  String  toUpperCase()//转换成大写

    public  String  toLowerCase()//转换成小写

  • 相关阅读:
    A02 React+Antdesign 创建新项目
    B02 Vue+Element 创建新项目
    B01 Vue+Element 开发环境搭建
    A01 React+Antdesign 开发环境准备
    批量处理TXT转csv
    pyinstall python文件打包成二进制exe文件
    vue前端与django后端数据交互
    页面自适应
    ETL-kettle通过java代码传递参数,调用job调用转换
    ETL-kettle基本操作,表的输入输出
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1941528.html
Copyright © 2020-2023  润新知