黑马程序员——14,String相关知识点

------<ahref="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

/*

下面介绍的是String类相关方法的知识点

*/

class  Zifuchuan
{
         public   static   void main(String[] args) //主函数
         {
       String  a="yiersan";//这里的a是一个引用型变量,而"yi"是一个对象
                   /*
                   这句话在内存中只有一个对象"yiersan"
                   字符串一旦被初始化了就不会被改变了

        */
                   String  b=new String("yiersan");//这句话在内存中有两个对象其中一个是"yiersan"另外一个是new  String()
       String  c="yiersan";//这里的c与前面的a指向的是同一个对象"yiersan"
                   /*
                   因为字符串一旦被初始化了就不会被改变了,而前面已经在内存中定义了对象"yiersan"
        */
       String  d="yiersansi";
       System.out.println("a==b----"+(a==b));
       System.out.println("a==c----"+(a==c));
       System.out.println("a==d----"+(a==d));
                   System.out.println("a.equals(b)----"+a.equals(b));
                   /*
                   equals这个方法原本是定义在Object类里面用来比较地址值
                   但是String类中复写了这个方法,功能变成比较字符串内容是否是一样的。

                   */
         }
}
/*
  以上代码编译运行结果如下:
  a==b----false
  a==c----true
  a==d----false
  a.equals(b)----true

*/

——————分割线————

/*

String里面定义了很多有用的方法

以下介绍一些关于String类的常用的方法

为了方便说明举一个具体的例子

*/

class  Zifuchuan2
{
         public   static void main(String[] args) //主函数
         {
       String a="yiersansiwuliou";
                   //字符串中的角标都是从0开始累加
       soc(a.length());//这句话打印的是15
                   //a.length()返回的是字符串的长度

       soc(a.charAt(5));//这句话打印的是a
                  /*
                   a.charAt(5)返回的是字符串中角标为5的字符
       // soc(a.charAt(50));//这句话就会出现角标越界的异常
                   */

      soc(a.indexOf('i'));//这句话打印的是1
             // a.indexOf('i')返回字符串中的'i'第一次出现位置的角标

       soc(a.indexOf("iw"));//这句话打印的是8

                   soc(a.indexOf('i',4));//这句话打印的是8
                   /*
                   a.indexOf('i',4)的功能是:
                   在字符串中从角标为4的字符开始往后搜索第一个会出现的字符'i'搜
                   索到之后再把对应的角标返回
       */
                   soc(a.indexOf("iw",4));//这句话打印的是8

              soc(a.indexOf('d',4));//这句话打印的是-1
                    //a.indexOf('d',4)这句话没有找到想要找的字符就会返回-1

              //以下是反向搜索:
        soc(a.lastIndexOf('i',6));//这句话打印的是1
        soc(a.lastIndexOf('i'));//这句话打印的是12
                    soc(a.lastIndexOf("iw"));//这句话打印的是8
                    soc(a.lastIndexOf("wi"));//这句话打印的是-1
        soc(a.lastIndexOf("iw",11));//这句话打印的是8

         }
         public  static void  soc(Object  obj)
         {
             System.out.println(obj );
         }
}

——————分割线————

/*
还是介绍一些String类里面常用的方法
*/

class  Zifuchuan3
{
         public  static   void  main(String[] args) //主函数
         {
       String a="yiersansiwuliou";
       String  b="";
                   String  c=" ";
       soc(a.isEmpty());//这句话打印的是false
                   //a.isEmpty()功能:检测字符串是否为有内容,若是返回true否则返回false
       soc(b.isEmpty());//这句话打印的是true
       soc(c.isEmpty());//这句话打印的是false

                   soc(a.startsWith("yi"));//这句话打印的是true
                   //a.startsWith("yi")功能是检测字符串是否是以yi开头,若是返回true否则返回false
                   soc(a.startsWith("y"));//这句话打印的是true

        soc(a.endsWith("ou"));//这句话打印的是true
                   //a.endsWith("ou")功能是检测字符串是否是以ou结尾,若是返回true否则返回false
       //soc(a.endsWith('u'));//这句话编译不通过

       soc(a.contains("san"));//这句话打印的是true
                   //a.contains("san")功能是检测字符串中是否含有san,若是返回true否则返回false
       //soc(a.contains('s'));//这句话编译不通过

       soc(a.equals("san"));//这句话打印的是false
                   //a.equals("san")功能是检测字符串内容与san是否相等,若是返回true否则返回false
                   //equals方法原本是Object类中的方法,是判断地址值是否相等的,这里就被复写掉了

            soc(a.equalsIgnoreCase("yieRsansiWulIou"));//这句话打印的是true
       /*
                  a.equalsIgnoreCase("yieRsansiWulIou")功能是:
                   不区分大小写检测字符串与yieRsansiWulIou是否相等,若是返回true否则返回false
                   */

         }
         public  static void  soc(Object  obj)
         {
             System.out.println(obj );
         }
}

——————分割线——————

/*

String类相应的转换方法或者是构造函数

为了方便看懂,直接用例子说明

*/

class  Zifuchuan4
{
         public  static void  main(String[] args) //主函数
         {
       char[] a={'y','i','e','r','s','a','n','s','i','w','u','l','i','o','u'};
       //这是一个字符数组,里面装着一堆的字符
                   byte[]  b={2,25,46,85,76,95};
       String  c="qibajioushi";
                   String  d="25648612";

       //用String类中的构造函数把字符数组转成字符串:
                   String  stra=new String(a);
                   //把字符数组a里面的一堆字符按照顺序串成字符串"yiersansiwuliou",并且用引用型变量stra指向该字符串
       soc(stra);//打印的是"yiersansiwuliou"
       String  stra2=new  String(a,3,9);
                   //把字符数组a中的角标3开始的字符按顺序串成字符串,该字符串的长度是9,然后并且用引用型变量strb指向该字符串
                   soc(stra2);//打印的是"rsansiwul"

            //将字节数组转化成字符串:
       soc(new  String(b));//注意:打印的不是数字组成的字符串,而是对应编码表的符号!!!
       soc(new  String(b,2,4));//注意:打印的不是数字组成的字符串,而是对应编码表的符号!!!
                   //对应编码表可以自定义

       //用String类中的静态方法把字符数组转成字符串:
      soc(String.valueOf(a));//打印的是"yiersansiwuliou"
            soc(String.copyValueOf(a));//打印的是"yiersansiwuliou"
           soc(String.copyValueOf(a,3,9));//"rsansiwul"
      //也可以放数字进去
      soc(String.valueOf(12));//打印的是12
            soc(String.valueOf(15.4));//打印的是15.4
      //soc(String.copyValueOf(b,2,4));//这句话编译不通过

      char[]   shuzhuc=c.toCharArray();//把字符串c转变成一堆字符数组
      for(int x=0;x<shuzhuc.length;x++)
            {

                 soc("shuzhuc="+shuzhuc[x]);//逐个打印字符数组shuzhuc
            }

       byte[]   shuzhud=d.getBytes();

      for(int x=0;x<shuzhud.length;x++)
            {

                 soc("shuzhud="+shuzhud[x]);//逐个打印字符数组shuzhud
            }

         }
         public  static void  soc(Object  obj)//soc打印方法
         {
             System.out.println(obj );
         }

}
/*
以上代码编译运行结果如下:
yiersansiwuliou
rsansiwul
[1].UL_
.UL_
yiersansiwuliou
yiersansiwuliou
rsansiwul
12
15.4
shuzhuc=q
shuzhuc=i
shuzhuc=b
shuzhuc=a
shuzhuc=j
shuzhuc=i
shuzhuc=o
shuzhuc=u
shuzhuc=s
shuzhuc=h
shuzhuc=i
shuzhud=50
shuzhud=53
shuzhud=54
shuzhud=52
shuzhud=56
shuzhud=54
shuzhud=49
shuzhud=50
*/

————————分割线——————

/*

以下介绍String类中的替换与切割方法

*/

class  Zifuchuan5
{
         public  static void  main(String[] args) //主函数
         {
        String a="yiersansiwuliou";
                    String b=a.replace('i','k');//把字符串中的字符i替换成字符k
                    String c=a.replace("yier","dada");//把字符串中的字符串yier替换成字符串dada

                    soc("a="+a);//打印的是a=yiersansiwuliou
                    soc("b="+b);//打印的是b=ykersanskwulkou
                    //因为字符串一旦建立被初始化之后就不可以更改了,所以才会出现这种情况
                    //实际内存里面就有两个对象了
                    soc("c="+c);

                    //以下是切割介绍:
                    System.out.println("下面是切割打印------");
                    //String[] sza= a.split('i');//这句话编译不通过,括号里面不能放字符,只能够放字符串
                    String[] sza=a.split("i");//这句话是可以编译通过的
                    for(int x=0; x<sza.length ;x++)
                    {
                         soc("sza---"+sza[x]);//逐个打印
                    }
        //soc("数组sza长度="+sza.length);//这句话打印的是数组sza长度=4
                    /*  //以下是关于切割另外的小知识点
                    String op="jkhsdjksdbfjkbwdgw";
        String[] szop=op.split("jk");
                    soc("数组szop长度="+szop.length);//这句话打印的是数组szop长度=4

                    String op2="jkhsdjkhsdjkbwdgw";
        String[] szop2=op2.split("jk");
                    soc("数组szop2长度="+szop2.length);//这句话打印的是数组szop2长度=4
                    */

                    String[] sza2= a.split("iw");
                    for(int x=0; x<sza2.length ;x++)
                    {
                         soc("sza2---"+sza2[x]);//逐个打印
                    }

                    System.out.println("-------下面是字符串的获取--------------------");
                    String d= a.substring(4);//获取字符串中角标4开头后面的字符串,这是获取不是切割
                    soc(d);//打印的是sansiwuliou
                    String e= a.substring(4,9);//获取字符串中从角标4到角标9的字符串,但是不包含角标9的字符
                    soc(e);//打印的是sansi

         }
         public  static void  soc(Object  obj)//soc打印方法
         {
             System.out.println(obj );
         }

}
/*
以上代码编译运行结果如下:
a=yiersansiwuliou
b=ykersanskwulkou
c=dadasansiwuliou
下面是切割打印------
sza---y
sza---ersans
sza---wul
sza---ou
sza2---yiersans
sza2---uliou
-------下面是字符串的获取--------------------
sansiwuliou
sansi

*/

————————分割线——————

/*

String类中的 转换大小写,去除前后端空格,比较

*/

class  Zifuchuan6
{
         public  static void  main(String[] args) //主函数
         {
        String a="yiersansiwuliou";
                    String a2="   yiersansi wu  liou ";
                    soc("a="+a+"--a2="+a2);
                    String b=a.toUpperCase();//把字符串yiersansiwuliou转成大写再返回大写的字符串
                    String c=b.toLowerCase();//把字符串yiersansiwuliou转成小写再返回小写的字符串
                    soc("b="+b);
                    soc("c="+c);
        String  e=a2.trim();//返回去除掉前后两端空格的字符串
                    soc("e="+e);

                    String f="asd";
                    String g="ahj";
                    int h=  f.compareTo(g);//返回的是int型变量
                    /*   为了方便解说,本人记f为前者,g为后者
                         f与g相比较,先从第一位开始比较,
                              接着第一次遇到不同字符的时候,就比较这两个不同字符对应编码表的数值大小
                              本例中,第一位都是a
                              接着前者的第二位是s
                              后者的第二位是h
                              就比较第二位字符对应编码表数值大小就可以了,后面位数的字符不用管
                              此时如果前者对应编码表数值大于后者就返回正数,如果相同返回0,否则返回负数
                    */
                    soc(h);

         }
         public  static void  soc(Object  obj)//soc打印方法
         {
             System.out.println(obj );
         }

}
/*
以上代码编译运行结果:
a=yiersansiwuliou--a2=   yiersansi wu liou
b=YIERSANSIWULIOU
c=yiersansiwuliou
e=yiersansi wu  liou
11

*/

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 02:12:52

黑马程序员——14,String相关知识点的相关文章

黑马程序员——C语言一些知识点总结

一.关键字 1. 什么是关键字 1> 关键字就是C语言提供的有特殊含义的符号,也叫做“保留字” 2> C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义 auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto si

黑马程序员_java String类小结

------- android培训.java培训.期待与您交流! ---------- String类字符串是一个特殊的对象,字符串是常量一旦初始化就不会被改变,只能是新建字符串对象.字符串常量池是在方法区中开辟的.==与equals()的区别,前者判断的是引用类类型变量即地址,后者判断的是对象地址中的内容.不同对象地址中的内容值是可以相等的.String类复写了Object类中的equals方法,该方法用于判断字符串对象中的字符串内容是否相同.String s2=new String("abc

黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 2.常见的软件:系统软件:如:DOS,Windows,Linux等.应用软件:如:扫雷,迅雷,QQ等. 3.什么是开发?制作软件. 二.基础知识:人机交互方式 4.软件的出现实现了人与计算机之间的更好的交互. 5.交互方式:图形化界面:这种方式简单直观,使用者易于接受,容易上手操作.命令行方式:

黑马程序员——Java I/O流基础知识点(File类)

File工具 File类就是用俩将文件或者文件夹封装对象,弥补流对象的不足--流只能操作数据,不能操作文件夹的 封装的是路径!!! 构造方法演示 1.可以将已有的未出现的文件或者文件夹封装成对象. File f1=new File("c:\\abc\\a.txt"): File f2=new File("d:\\abc","ab.txt"打印,会打印路径.:目录分隔符,为了更好地跨平台File. File类常见功能 1,创建 createNewF

黑马程序员------String和StringBuffer、StringBuilder

黑马程序员------String和StringBuffer.StringBuilder 1.1String String是一个特殊的对象,一旦被初始化,就不会被改变.()指的是abc 不是变量 s1. String s1="abc"; s1是一个类类型变量,“abc”是一个对象.String s2=new String("abc"); s1和s2的区别:s1在字符串常量池中创建了一个abc字符串s2在堆中创建了两个对象一个是默认对象一个是字符串对象. ==和equ

黑马程序员----java基础--String字符串

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.String类概述 java中用String类进行描述对字符串进行了对象的封装.这样的好处是可以对字符串这种常见数据进行方便的操作.对象封装后,可以定义N多属性和行为. String类是final的,也就是说它没有子类. 二.String字符串的特点 1.字符串一旦被初始化就不可以被改变.并且存放在方法区中的常量池中. 1 class StringDemo{ 2 public static

黑马程序员_Java基础String类

- - - - - android培训.java培训.期待与您交流! - - - - - - - String是一个对象 String不属于8种基本数据类型(byte, char, short, int, float, long, double, boolean),String是对象,所以其默认值是null. String是一种特殊的对象,有其它对象没有的一些特性,通过JDK发现: public final class String implements java.io.Serializable

黑马程序员_浅谈out参数、ref参数和可变参数

1.out参数 out关键字会导致参数通过引用来传递,通俗点说,就是往外传值的. out参数的作用:用于以内部变量为外部变量赋值的,out一般适用于某个方法不只是使用return返回单个值,而是需要有多个返回值的情况. out参数的使用需要注意以下几点:  1)out参数传递的变量在传递之前不需要对其进行初始化. 分析:在调用方法之前,对out参数传递的变量只需声明,可以赋值也可以不赋值,不过反正都是要在调用时被覆盖掉,所以大可不必赋值,因为赋值了虽然不会报错,但却根本也没有用处,没必要多此一举

黑马程序员——高新技术---反射

黑马程序员——高新技术---反射 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 反射把Java类中的各种成分映射成相应的Java类,例如一个Java类中用一个Class类的对象表示,一个类中的组成部分:成员变量,方法,构造方