String类

String 类的两种赋值

课程大纲

一、    String类

1、         String可以表示出一个字符串

2、         String类实际上是使用字符数组存储的

二、    String类的两种赋值方式

String s1  = new String(“小白”);

String s2 = “小白”;

/**

   String 类(字符串类)

   java.lang包是系统默认引入的包,所以不需要我们人工导入,

 

*/

 

class StringDemo

{

       public static void main(String[] args)

       {

              //创建字符串的方式一

              String s1 = new String("小白");//会创建两个字符串对象

              //创建字符串的方式二

              String s2  = "小白";//最多创建一个字符串对象,有可能不创建对象

              System.out.println("s1="+s1);

              System.out.println("s2="+s2);

       }

}

String类的两种赋值分析

课程大纲

一、  String类的两种赋值分析

1、         字符串常量池

2、         Strings1 = new String(“小白”)内存分析

3、         Strings2 = “小白”;内存分析

 

/**

   String 类(字符串类)

   java.lang包是系统默认引入的包,所以不需要我们人工导入,

 

*/

 

class StringDemo

{

       public static void main(String[] args)

       {

              //创建字符串的方式一

              String s1 = new String("小白");//会创建两个字符串对象

              //创建字符串的方式二

              String s2  = "小白";//最多创建一个字符串对象,有可能不创建对象

              System.out.println("s1="+s1);

              System.out.println("s2="+s2);

       }

}

String类编译期与运行期分析

课程大纲

一、

/**

 

              String 类编译期与运行期的分析

*/

 

class StringDemo

{

       public static void main(String[] args)

       {

              //情况一

              String a = "a1";

              String a1 = "a" + 1;

              System.out.println(a==a1);//true

              //情况二

              String b = "b1";

              int    bb = 1;

              String b1 = "b" + bb;

              System.out.println(b1==b);//false

              //情况三

              String c = "c1";

              final int  cc = 1;

              String c1 = "c" + cc;

              System.out.println(c1==c);//true

              //情况四

              String d = "d1";

              final int dd = getdd();

              String d1 = "d" + dd;

              System.out.println(d1==d);//false

             

 

       }

       public static int getdd()

              {

                return 1;

              }

}

String字符与字符串操作方法

课程大纲

一、String字符与字符串操作方法

 

classStringMethodDemo1

{

       public static void main(String[] args)

       {

              String s = "lampbrother-小白";

              char c = s.charAt(3);//根据index下标返回字符串中此位置的字符,下标从零开始

              System.out.println("charAt:"+c);

              char [] cc = s.toCharArray();//把字符串转换成字符数组并返回

              for(int i =0;i<cc.length;i++)//遍历输出该字符数组

              {

                System.out.print(cc[i]+" ");

              }

       }

}

String 类字节与字符串方法操作

课程大纲

一、

classStringMethodDemo2

{

       public static void main(String[] args)throws Exception

       {

              String s = "小白是一个无节操、无底线、无干爹的三无少年!";

              //将字符串装换为字节数组

              byte[] bytes = s.getBytes();

              for(int i =0;i<bytes.length;i++)

              {

                System.out.print(bytes[i]+" , ");

              }

              System.out.println();

              //将字节数组转换为字符串(该方法为构造方法,new的时候调用)

              String s1 = new String(bytes);

                     System.out.println("转换后的字符串为:"+s1);

              String s2 = newString(bytes,0,16);//一个汉字占两个字节,offset为偏移量

                 System.out.println("s2="+s2);

              //String s3 = newString(bytes,"utf-8");

              String s3 = newString(bytes,"gbk");

                     System.out.println("s3="+s3);

       }

}

 

String判断是否以指定内容开头或结尾

课程大纲

一、

/**

   判断是否以指定内容开始或者结束

*/

 

classStringMethodDemo2

{

       public static void main(String[] args)

       {

              String s = "威哥是一个猥琐但不下流,爱好搞对象的男人!";

          boolean  b1 =     s.startsWith("威哥");//判断是否以指定内容开头

              System.out.println(b1);

              boolean b2  = s.startsWith("下流",9);//判断指定位置是否以指定内容开头

              System.out.println(b2);

              boolean b3 = s.endsWith("男人!");

              System.out.println(b3);

 

 

       }

}

String类替换操作

课程大纲

一、

/**

   String 替换操作

*/

 

classStringMethodDemo4

{

       public static void main(String[] args)

       {

              String info = "小白:真实a一表淫n才啊!";

              info =info.replace(":",",");//把前面的字符串替换成后面的字符串

              System.out.println(info);

              info = info.replace("小白","小黑");//把前面的字符串替换成后面的字符串

              System.out.println(info);

              info =info.replaceAll("[a-z]","*");//把所有符合正则表达式的值全部替换成后面的

              System.out.println(info);

              info =info.replaceFirst("\\*","#");//只把第一个符合条件的值替换成后面的值

              System.out.println(info);

 

 

       }

}

String类字符串的截取操作

课程大纲

一、

/**

       字符串的截取操作

*/

 

classStringMethodDemo5

{

       public static void main(String[] args)

       {

              String info = "知识就像内裤,看不见但很重要!";

              String s = info.substring(7);//一直截取到最后

              System.out.println(s);

              String s1 = info.substring(0,6);

              System.out.println(s1);

       }

}

String类字符串拆分操作

课程大纲

一、

classStringMethodDemo

{

       public static void main(String[] args)

       {

              String info = "怀才就像怀孕-时间久了-才能看出来!";

              String[] value =info.split("-");

              for(String s:value)

              {

                System.out.println(s);

              }

              value =info.split("-",3);

              for(String s:value)

              {

                System.out.println(s);

              }

 

       }

}

String类字符串查找操作

课程大纲

一、

classStringMethodDemo7

{

       public static void main(String[] args)

       {

              String info = "安能摧眉折腰事权贵,使我不得开心颜!";

              boolean b = info.contains("权贵");//查询是否包含指定字符串

              System.out.println(b);

              int index = info.indexOf('我');//查询所包含的字符所在的下标位置,如果没有则返回-1;

              System.out.println(index);

              int index1 = info.indexOf("开心");//查询所包含的字符串所在的下标位置,如果没有则返回-1

              System.out.println(index1);

              int index2 = info.lastIndexOf('不');//返回字符最后一次出现的索引

              System.out.println(index2);

              int index3 =info.lastIndexOf("不得");//返回字符串最右边出现的索引

              System.out.println(index3);

 

       }

}

                                             String类其他操作方法                         

课程大纲

一、

二、作业:

   1、判断一个Email地址是否正确,要求判断是否存在@和.

   2、给出一个字符串:格式描述:姓名:性别:描述

              苍老师:女:女友大使|小白:不定:各种演员

              威哥:男:非著名讲师

      将其转换成如下形式:

class HomeWork1

{

       public static void main(String[] args)

       {

              String email ="[email protected]";

              int at = email.indexOf('@');

              int point = email.indexOf('.');

              boolean flag = false;

              if(at>0&&at<point)

              {

               flag = true;

              }

              if(flag)

              {

                System.out.println("email地址合法");

              }

              else{

                System.out.println("email地址不合法");

              }

       }

}

class HomeWork2

{

       public static void main(String[] args)

       {

              String info = "苍老师:女:女友大使|小白:不确定:演员|威哥:男:非著名讲师";

              String [] str =info.split("\\|");

              for(int i= 0;i<str.length;i++)

              {

                 System.out.println(str[i].replace(":","->"));

              }

       }

}

/**

       String的其他操作

*/

 

classStringMethodDemo8

{

       public static void main(String[] args)

       {

              String info = "  time :时间就是生命! ";

              boolean b = info.isEmpty();//判断字符串是否为空

              System.out.println(b);

              //获取字符串的长度

              int len = info.length();

              System.out.println(len);

              //String s1 = s.toLowerCase();转换成小写

              String s = info.toUpperCase();//转换成大写

              System.out.println(s);

               String info1 = info.concat("你要珍惜");//字符串连接

               System.out.println(info1);

               String info2 = info.trim();//去掉字符串的开头和结尾的空格

               System.out.println(info2);

       }

}

值传递与引用传递

课程大纲

一、    值传递和引用传递

class RefDemo1

{

       public static void main(String[] args)

       {

              Cat c = new Cat();

              method(c);

              System.out.println(c.age);

             

       }

       public static void method(Cat cat)

              {

                 cat.age = 5;

              }

             

}

class Cat

{

       int age = 2;//省略引用

}

class RefDemo2

{

       public static void main(String[] args)

       {

              String name = "小白";

              method(name);

              System.out.println(name);

       }

       public static void method(String sname)

       {

         sname = "小红";

       }

}

 

class RefDemo3

{

       public static void main(String[] args)

       {

              Catc = new Cat();

              method(c);

              System.out.println(c.name);

 

       }

       public static void method(Cat cat)

       {

        cat.name = "小黑";

       }

}

class Cat

{

       String name = "小白";

}

class  ValueDemo

{

       public static void main(String[] args)

       {

              int x = 10;

              method(x);

              System.out.println("x="+x);

       }

       public static void method(int x)

       {

          x = 20;

       }

}

 

你可能感兴趣的:(String类)