www.2527.com_澳门新葡8455手机版_新京葡娱乐场网址_
做最好的网站

Java基础笔记,中String类的常用方法总括

2019-05-18 21:19 来源:未知

 

String类描述的是文本字符串体系

String 类(被final修饰)

String类:

1、String类对象创制方法

办法壹:直接赋值法

String str = "hello";

这种艺术先反省字符串常量池是还是不是存放这些”hello”这些字符串对象,借使未有存在,那么就能够在字符串常量池中开创这么些字符串对象;即便存在,直接回到该字符串的内部存款和储蓄器地址值。

措施二:new关键字法

String str = new String("hello");

该语句会创设四个对象。Java虚拟机首先会先检查字符串常量池中存不存在hello那么些字符串对象,假诺不设有就能够在字符串常量池创建。之后,还会将字符串常量池中的对象拷贝至堆内存,并回到堆内部存款和储蓄器中的地方。

此地给出一个例证方便大家精通,"=="用于相比较四个指标的内部存款和储蓄器地址

大家可能会有疑难,为啥1二行的相比结实是true。还记得上篇小说中关系的Object类中的的常用方法呢?equals方法默许情状下相比较也是四个指标的内存地址。这里再次来到true的源委是String类重写了equals方法,相比的并不是内部存储器地址,而是字符串的从头到尾的经过是不是等于。

字符串是一种格外的靶子,1旦字符串被初阶化就不得以被退换了.(内容不改变)

String类在java.lang包中,java使用String类创立三个字符串变量,字符串变量属于对象。String类对象创立后无法修改,StringBuffer & StringBuilder 类。那时大家会问,为何我们String变量赋值不正是改动了吗?其实不是的,赋值后将会扭转新的对像来存放在新的剧情,原先的指标依旧在内存中,可是s不在指向它,那么那个指标就能够化为废物内部存款和储蓄器,在某一个特定的时刻有Java虚拟机回收。 端详解释请点击    包括在一对双引号之间。

2、String类的构造方法

String类有以下常用构造方法

String() ——创造3个空内容的字符串对象;

String(byte[] bytes) ——使用三个字节数组创设一个字符串对象;

String(byte[] bytes, int offset, int length)——使用二个字节数组构建二个字符串对象,offset代表钦点从数组中哪些索引值起初解码成分,length表示成分个数;

String(char[] value) ——使用二个字符数组营造一个字符串;

String(char[] value, int offset, int count) ——使用八个字符数组营造二个字符串,钦命发轫的索引值和字符个数。

总的来讲:使用字节数组可能字符数组都得以营造2个字符串对象。

例如:

String字符串变量的创建:

三、String类的常用方法

三.1、获取情势

int length() ——获取字符串的长短;

char charAt(int index)——获取特确定工作岗位位的字符;

int indexOf(String str) ——查找子串第二遍面世的索引值,如若子串没有现身在字符串中,则赶回-一;

int lastIndexOf(String str) 查找子串最后叁次出现的索引值 , 即使子串未有出现在字符串中,则赶回-1;

叁.2、剖断方法

boolean endsWith(String str)——是不是以钦点字符结束;

boolean isEmpty()——是不是长度为0;

boolean contains(CharSequences)——是还是不是包括内定连串;

boolean equals(Object anObject)——是不是等于;

boolean equalsIgnoreCase(String anotherString)——忽略大小写是不是等于;

叁.3、转变方法

char[] toCharArray()—— 将字符串调换为字符数组;

byte[] getBytes()——将字符串转化为字节数组;

3.四、别的艺术

String replace(String oldChar, String newChar)——替换;

String[] split(String regex)——依据钦赐的字符进行切割;

String substring(int beginIndex) ——钦点起头的索引值截取子串;

String substring(int beginIndex, int endIndex)——钦命初始与甘休的索引值截取子串

String toUpperCase()——转大写;

String toLowerCase()——转小写

String trim()——去除字符串首尾的空格

String  s = “abc”; 

声明:     String 变量名;

4、StringBuffer

因为字符串是常量,它们的值在创立之后不能够改动,字符串的内容壹经发生了更改,那么立时会创制三个新的靶子。所以Java引进了StringBuffer类,能够满意我们1再修改字符串内容的必要。

StringBuffer 底层是依附了二个字符数组存款和储蓄字符数据,该字符串数组暗中认可的开首容积是1陆, 若是字符数组的长短不够使用,会自动拉长壹倍。

别的,StringBuffe是线程安全的,因此功用相对低

以下计算了StringBuffer的常用方法
添加:

append(boolean b) ——能够拉长大4等级次序的数额到容器中;

insert(int offset, boolean b) ——内定插入的索引值,插入对应的剧情;

删除:

delete(int start, int end) ——依照内定的启幕与甘休的索引值删除相应的原委;

deleteCharAt(int index) ——依照钦点的索引值删除贰个字符;

修改:

replace(int start, int end, String str) ——依照钦命的起来与甘休索引值取代成钦定的内容;

reverse() ——翻转字符串缓冲类的内容;  

setCharAt(int index, char ch) ——把内定索引值的字符替换钦命的字符;

substring(int start, int end) ——依据钦命的索引值截取子串;

ensureCapacity(int minimumCapacity) ——内定StringBuffer内部的字符数COO度的;

查看

indexOf(String str, int fromIndex)——查找钦命的字符串第3次面世的索引值,并且钦命先导查找的地点;

lastIndexOf(String str)——查找钦定的字符串最下一次面世的索引值;

capacity() ——查看当前字符数组的长短;

length()——存款和储蓄的字符个数;

charAt(int index)——从内定的索引值查找字符;

toString() ——把字符串缓冲类的内容转成字符串重回;

String  s1 = new String(“abc”);

         String str;

5、StringBuilder

StringBuilder 是JDK一.五随后建议的,线程不安全,不过效能要高。用法与StringBuffer类似。

此地推荐应用StringBuilder,纵然线程不安全,可是这种景色大概不会现出。

s在内部存款和储蓄器中有1个指标, s代表的是一个类类型变量,”abc”是1个对象.

声称并初始化:  String 变量名="初步值";

s1在内存中有四个目的,分别是new出来的和:  “abc” .

String str = "挨点博客";

 

String常用艺术:

s == s壹;的结果是false.   因为s和s一它们所对应的地点差异,比较的三个地方,s和s第11中学存款和储蓄的地方数值是不一致的.因而是false.

  1、int length();  语法:字符串变量名.length();  再次回到值为 int 类型。得到1个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)

s.equals(s一);的结果则为true.  equals是比较三个对象的剧情是或不是一样,

    

 

        String a="挨点aidian tn";
        int l = a.length();
        System.out.println(l);

运行结果:11

"=="和 equals 方法的界别:

2、char charAt(值);  语法 :字符串名.charAt(值);  再次来到值为 char 类型。从字符串中收取钦点地方的字符 

==操作符特意用来相比较多个变量的值是还是不是等于,约等于用于相比变量所对应的内部存款和储蓄器中所存储的数值是还是不是一样,要相比八个为主项目标数量或七个引用变量是不是等于,只好用==操作

     String str="张三疯";
        char c = str.charAt(2);  
        System.out.println("指定字符为:"   c); 

运行结果:指定字符为:疯

符.

   3、char  toCharArray();  语法 :字符串名.toCharArray();  再次来到值为 char 数组类型。将字符串变成八个字符数组 

壹经多个变量指向的数额是目的类型的,那时候涉及了两块内部存款和储蓄器,对象自笔者占用一块内部存款和储蓄器(堆内部存款和储蓄器),变量也据有壹块内部存款和储蓄器,在 Objet obj = new Object();变量 obj 是一个内部存款和储蓄器,new Object()是另1个内部存款和储蓄器,此时,变量 obj 所对应的内部存款和储蓄器中积存的数值正是指标占用的那块内部存款和储蓄器的首地址.对此针对对象类型的变量,即使要相比三个变量是还是不是对准同3个指标即要看这五个变量所对应的内存中的数值是或不是等于,那时候就须要用==操作符举办对比.

String str="张三疯";
char c[] = str.toCharArray();  
for (int i = 0; i < c.length; i  ) 
System.out.println("转为数组输出:"   c[i]);

equals 方法是用以相比较多少个单身对象的开始和结果是或不是一样,它相比的八个对象是独自的.

      运营结果:

String a=new String("abc");

转为数组输出:张
转为数组输出:三
转为数组输出:疯

String b=new String("abc");

 4、int indexOf("字符")  语法 :字符串名.indexOf("字符");字符串名.indexOf("字符",值);查找2个钦命的字符串是还是不是留存,重返的是字符串的岗位,假若不存在,则赶回-1。 

两条 new 语句创造了三个指标,然后用 a和b 八个变量分别针对了里面贰个目的,那是两个不一样的对象,它们的首地址是见仁见智的,即 a 和 b 中贮存的数值(地址值)是不一致样的,所以,表达式 a==b 将回到 false,而那三个指标中的内容是壹律的,所以,表明式 a.equals(b)将回来true.

    in lastIndexOf("字符") 获得钦命内容最后三回出现的下标

String类中复写了Object类中的equals方法,用于判别字符串是不是同样.

String str="只为挨你近一点";
int a1 = str.indexOf("你");// 查找字符你的位置  
int a2 = str.indexOf("为", 2);// 查找为的位置,从第3个开始查找
int a3 = str.lastIndexOf("点");  
System.out.println("你的位置为:"   a1);  
System.out.println("为的位置为:"   a2);
System.out.println("点最后出现的位置为:"   a3);

运行结果:

 

您的岗位为:三

参见代码:String德姆o.java

为的地方为:-壹

 

点最后现身的任务为:7

 1 class StringDemo
 2 {
 3     public static void main(String args[])
 4     {
 5         String s = "abc";  //s是一个类类型的变量."abc"是一个对象
 6         String s1 = new String("abc"); //s1中有两个对象. 
 7         
 8         //s和s1的区别: 
 9         // 在s中有一个对象"abc",一个类类型变量
10         // 在s1中有两个对象.分别是new出来的和"abc"
11         
12         System.out.println(s==s1);  //输出的结果为false
13         System.out.println(s.equals(s1)); //输出的结果为true.
14         
15     }
16 }
17 
18     

   5、toUpperCase();  toLowerCase();字符串大小写的转移

 

String str="hello world";
System.out.println("将字符串转大写为:"   str.toUpperCase());
System.out.println("将字符串转换成小写为:"   str.toUpperCase().toLowerCase());

运算结果:

 

将字符串转大写为:HELLO WO大切诺基LD
将字符串调换到小写为:hello world

String类中的常见格局操作.

  6、String[] split("字符")  依据给定的正则表明式的协作来拆分此字符串。形成一个新的String数组。

一.  收获操作.

String str = "boo:and:foo";
String[] arr1 = str.split(":");
String[] arr2 = str.split("o");
运行结果:
  arr1  //{ "boo", "and", "foo" }
  arr2  //{ "b", "", ":and:f" }

1.一到手字符串中字符个数,即获取字符串的长度.

  7、boolean equals(Object anObject)  语法 :字符串变量名.wquals(字符串变量名);  再次来到值为布尔类型。所以这里用 if 演示。比较几个字符串是或不是等于,再次来到布尔值

方式重回类型为:  int  length()

               String str = "hello";
                      String str1="world";  
                      if(str.equals(str1)) 
                      {  
                       System.out.println("这俩字符串值相等"); 
                      }  
                      else
                      {
                       System.out.println("这俩字符串值不相等");  
                      }
      运行结果:

与数组中length的分别: 在数组中:用的是 .length 即用的是length的属性.

          这俩字符串值不对等

                               在字符串中:用的是length() 即用的是length方法.

 

 

  8、trim();  去掉字符串左右空格  replace(char oldChar,char newChar);新字符替换旧字符,也足以高达去空格的功力1种。

一.2 依据义务获取字符串中的有个别字符.

String str = "       挨点博客         ";  
System.out.println("去掉左右空格后:"   str.trim());

运行结果:

  方法重临类型为: char  CharAt(int index =>角标) 参数中是想取得字符的岗位, 参数中输入的是想得到的字符的角标

  去掉左右空格后:挨点博客

 

第二种:
String str = "       挨点博客         ";  
System.out.println("去掉左右空格后:"   str.replace(" ","")); 

运行结果:

一.三 依据字符获取该字符在字符串中的地点.

  去掉左右空格后:挨点博客

方法1:

  玖、String substring(int beginIndex,int endIndex)  截取字符串 

  重返值类型为:  int  indexOf(int ch =>想获得的字符) 参数中输入的是想获得的字符的地方.

      String str = "123挨点博客456";  
         System.out.println("截取后的字符为:"   str.substring(0,3));// 截取0-3个位置的内容   不含3 
         System.out.println("截取后字符为:"   str.substring(2));// 从第3个位置开始截取    含2

  运行结果:

方法2:

    截取后的字符为:1贰三
    截取后字符为:三挨点博客45陆

  重回值类型为:  int indexOf(int ch,fromIndex)从fromIndex起始获取.

  10、boolean equalsIgnoreCase(String) 忽略大小写的比较四个字符串的值是还是不是一致,再次回到3个布尔值

  获取字符串中字符串的岗位: 再次来到类型:int   int indexOf(int ch)``

     String str = "HELLO WORLd";
        String str1 = "hello world";
        if(str.equalsIgnoreCase(str1))
        {
            System.out.println("两个字符串相等");
        }
        else
        {
            System.out.println("两个字符串不相等");
        }

运行结果:

  获取从fromIndex地方上马的字符串的岗位:

    三个字符串相等

  重回类型:  int  方法:indexOf(int ch,fromIndex)

  11、boolean contains(String) 剖断三个字符串里面是否包蕴钦赐的剧情,重临二个布尔值

反向索引一个字符串中字符的位置,

        String str = "HELLO WORLd";
        String str1 = "WO";
        if(str.contains(str1))
        {
            System.out.println("str内容中存在WO");
        }
        else
        {
            System.out.println("抱歉没找着");
        }
运行结果:

  lastIndexOf(int ch,fromIndex)

  str内容中存在WO

 

  12、boolean startsWith(String)  测试此字符串是否以钦定的前缀开始。重返3个布尔值

2.  决断操作.

     String str = "HELLO WORLd";
        String str1 = "HE";
        if(str.startsWith(str1))
        {
            System.out.println("str内容中存在HE前缀开头");
        }
        else
        {
            System.out.println("抱歉没找着");
        }
运行结果:

二.一 字符串中是还是不是带有有某一个子串.

  str内容中留存HE前缀开首

  重返类型:boolean  方法:contains(str);

  13、boolean endsWith(String)  测试此字符串是或不是以钦定的后缀停止。重临三个布尔值

  IndexOf(str)能够索引第3回出现的地方.固然回去-一.则申明没有索引到,

        String str = "挨点博客";
        String str1 = "博客";
        if(str.endsWith(str1))
        {
            System.out.println("str内容中存在'博客'后缀结束");
        }
        else
        {
            System.out.println("抱歉没找着");
        }
运行结果:

  If(str.indexOf(“字符串”)!=-1)  该方式即能够推断也足以赢得地点.

  str内容中留存'博客'后缀结束

二.二 字符中是还是不是有内容.

  1四、上面提到了replace方法,接下继续补充一下  String replaceAll(String,String) 将有个别内容总体替换来钦命内容,   String repalceFirst(String,String) 将率先次面世的某些内容替换到钦命的内容

  重临类型: boolean  方法:isEmpty();  判别长度是或不是为空.

String str = ",,,,,,挨点博客,,,,, ";  
System.out.println("改变后:"   str.replaceAll(",","a"));

运行结果:改变后:a,,,,,挨点博客,,,,, 


String str = ",,,,,,挨点博客,帅吗,帅吗,,,,, ";  
System.out.println("改变后:"   str.replaceFirst("帅吗","很帅哦"));

运行结果:改变后:,,,,,,挨点博客,很帅哦,帅吗,,,,, 

贰.三 字符串是不是以钦命的剧情开首.

  加强的时候查阅了大多材质。给我们推荐三个工具,是3个java使用手册在线版    希望对您们的就学有扶持,并多多扶助下。

  重回类型:boolean  方法:startsWith(str);

何以有荒唐的、恐怕有补充的请在商议区商量、小编再修正与补偿。

计算机编程,二.四字符串是或不是以内定的内容结尾.

  原创内容,转发还望注解来源,感激。

  重回类型:boolean  方法:endsWith(str);

二.五 推断字符串的原委是还是不是壹律

  再次来到值类型:boolean equals(str);

2.陆忽略大小写判定字符串是不是一样. 

  equalsIgnoreCase(str)

 

3.  转换

三.一 将字符数组转成字符串.

    构造函数:String(char[])

    String(char[],offset,count):将字符数组中的一有的转成字符串.

静态方法:

static String copyValueOf(char[]);

    static String copyValueOf(char[] data, int offset, int count)

    static String valueOf(char[]):

叁.二 将字符串转成字符数组。(主要)

    再次回到类型:char[]  方法:toCharArray():

3.三 将字节数组转成字符串.

    String(byte[])

    String(byte[],offset,count):将字节数组中的1有的转成字符串.

三.四 将字符串转成字节数组.

    再次回到类型:byte[]  方法:getBytes():

3.5 将基本数据类型转成字符串

    static String valueOf(int)

    static String valueOf(double)

  3 ""; //String.valueOf(3); 两个的结果是同样的,都是出口的字符串类型的”3”

特别之处:字符串和字节数组在转移进度中,是足以内定编码表的.

4.  替换

String replace(oldchar,newchar);

5.  切割

    String[] split(regex);

6.  子串,获取字符串中的1部分.

    String substring(begin);

    String substring(begin,end);

7.  调换,去除空格,相比.

7.壹 将字符串转成大写或则小写.

     String toUpperCase();

     String toLowerCase();

7.贰 将字符串两端的八个空格去除.

    String trim();

7.三 对四个字符串举行自然顺序的相比.

    int compareTo(string);

 

勤学苦练实例代码:

  1 class  StringFunctionDemo
  2 {
  3     public static void main(String args[])
  4     {
  5         //functionLength();
  6         //functionJudge();
  7         //functionTrans();
  8         //functionReplace();
  9         //functionSplit();
 10         functionSub();
 11         function_7();
 12     }
 13     //去除空格,转成大写或者小写,输出,比较两个字符串的大小.
 14     public static void function_7()
 15     {
 16         String str = "    Hello Java     ";
 17         printer(str.toLowerCase()); //全部转换为小写字母输出
 18         printer(str.toUpperCase()); //全部转换为大写字母输出
 19         printer(str.trim()); //将字符串两边的空格去除输出字符串.
 20 
 21         String str1 = "aba";
 22         String str2 = "aaa";
 23 
 24         printer(str1.compareTo(str2)); //将两个字符串进行自然顺序比较大小  正数表示前面的字符串大.负数后面的字符串大.
 25     }
 26     //截取字符串中的子串字符串.
 27     public static void functionSub()
 28     {
 29         String str = "abcdef";
 30 
 31         printer(str.substring(2));//从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界的异常。
 32         printer(str.substring(2,4));//包含开头头,不包含结尾  str.substring(0,s.length());
 33     }
 34     
 35     
 36     //定义了一个将字符串转换为字符串数组的方法
 37     public static void  functionSplit()
 38     {
 39         String str = "zhagnsan,lisi,wangwu,qianliu";
 40 
 41         String[] arr  = str.split(","); //将字符串转换为字符组数组.
 42 
 43         for(int x = 0; x < arr.length; x  )
 44         {
 45             printer("String [] arr = " arr[x]);
 46         }
 47     }
 48 
 49     
 50     //定义了替换字符串内容的有关方法
 51     public static void functionReplace()
 52     {
 53         String str = "hello java";
 54 
 55         //String str1 = s.replace('q','n');  //如果要替换的字符不存在,返回的还是原来的字符串.
 56         
 57         String str1 = str.replace("java","world");  //用字符串"world"替换原来字符串中的"java".
 58         printer("str=" str);
 59         printer("str1=" str1);
 60     }
 61     
 62     
 63     //定义了一个字符串和字符数组之间转换相关的方法
 64     public  static void functionTrans()
 65     {
 66         char [] arr = new char []{'a','b','c','d','e'};
 67         String str = new String(arr); 
 68         String str1 = new String(arr,1,3);    //将字符从1角标的元素开始的后面3个元素一起转化成字符串
 69         printer("str = " str);   //将字符数组转换成字符串.
 70         printer("str1 = " str1);  
 71         
 72         String str2 = "abcdefg";
 73         char [] ch = str2.toCharArray(); //将字符串转换为字符数组
 74         for(int i = 0;i<ch.length;i  )
 75         {
 76             printer("ch = " ch[i]);   //将字符数组打印出来.
 77         }
 78     }
 79     //定义了判断字符串有关的方法操作
 80     public static void functionJudge()
 81     {
 82         String str = "HelloWorld.java";
 83         
 84         printer(str.contains("java")); //判断是否保护字符串"java"
 85         
 86         printer(str.isEmpty());//判断长度是否为0;
 87         
 88         printer(str.startsWith("Hello")); //判断是否是"Hello"字符串开头
 89         
 90         printer(str.endsWith(".java")); //判断是否是".java"的文件.
 91     }
 92     
 93     //定义了获取字符串位置的有关方法
 94     public static void functionLength()
 95     {
 96         
 97         String s = "abcdefgaqw";
 98         
 99         printer(s.length());//输出字符串的长度.
100         
101         printer(s.charAt(5));//当输入的角标超出范围时,会发生字符串角标越界的异常.
102         
103         printer(s.indexOf('a')); //获取字符'a'在字符串中的位置.获取的是第一次出现的位置.
104         
105         printer(s.indexOf('a',2)); //从位置2开始索引a.
106         
107         printer(s.indexOf('z')); //如果没有找到,则返回-1.输出的结果-1.
108         
109         printer(s.lastIndexOf('c',4)); //反向索引字符在字符串中的位置.
110         
111     }
112     
113     
114     
115     public static void printer(Object obj)
116     {
117         System.out.println(obj);
118     }
119     
120 }

 

TAG标签:
版权声明:本文由澳门新葡8455手机版发布于计算机编程,转载请注明出处:Java基础笔记,中String类的常用方法总括