蓝桥班练习5

  1. String字符串
    1. 概念

 

String表示字符串,所谓字符串,就是一连串的字符;

String是不可变类,一旦String对象被创建,包含在对象中的字符序列(内容)是不可变的,直到对象被销毁;

 

    1. 常用方法

 

      1. length() 字符串的长度

       例1:            

  String str = "abcdefg";

              int length = str.length();

              System.out.println(length);

 

  例2:          

    char chars[]={'a','b','c'};

              String s=new String(chars);

              int len=s.length();

              System.out.println(len);

 

      1. charAt() 截取一个字符

  例:             

String  str ="abc";

              char ch = str.charAt(1);

              System.out.println(ch);

 

 

      1. toCharArray():把字符串转换为char[]数组

       例:             

 String  str ="abc";

              char[] ch = str.toCharArray();

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

                     System.out.println(ch[i]);

              }

 

      1. equals()和equalsIgnoreCase() 比较两个字符串

equalsIgnoreCase()忽略英文大小写   可用于验证码验证

      1. startsWith()和endsWith()

  startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束

              例:            

  String  str ="abcdefg";

              System.out.println(str.startsWith("a"));

              System.out.println(str.endsWith("g"));

 

      1. equals()和==

  equals():方法比较字符串对象中的字符

              ==:运算符比较两个对象是否引用同一实例。

  例:          

    String s1="Hello";

              String s2=new String("Hello");

              System.out.println(s1.equals(s2));//true

              System.out.println(s1==s2);//false
      1. split拆分

例:             

String str = "qweetr,ytuyi,yusads";

              String[] s = str.split(",");

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

                     System.out.println(s[i]);

              }

 

 

      1. indexOf()和lastIndexOf()

  indexOf() 查找字符或者子串第一次出现的地方。

       例:             

 String str = "abcdefgabc";

              int index = str.indexOf("c");

              System.out.println(index);

 

  lastIndexOf() 查找字符或者子串是后一次出现的地方。

       例:             

String str = "abcdefgabc";

              int index = str.lastIndexOf("c");

              System.out.println(index); 

  

 

      1. substring()

           第一种是:String substring(int startIndex)

              例:             

 String str = "abcdefgabc";

              String result = str.substring(2);

              System.out.println(result);

 

              第二种是:String substring(int startIndex,int endIndex)

              例:        

      String str = "abcdefgabc";

              String result = str.substring(2,4);

              System.out.println(result);

 

      1. concat() 连接两个字符串

              例:           

   String str1 = "abcd";

              String str2 = "efgabc";

              String result = str1.concat(str2);

              System.out.println(result);

 

      1. replace() 替换

  例:        

      String str = "abcda";

              str = str.replace('a', 'w');

              System.out.println(str);

      1. trim() 去掉起始和结尾的空格

       例:         

     String str = " ab cd ";

              str = str.trim();

              System.out.println(str);

 

      1. valueOf() 转换为字符串

       例:    

   int num = 123;

       String str = String.valueOf(num);

       System.out.println(str);

 

      1. toLowerCase() 转换为大写

       例:     

  String str = "abc";

       str = str.toUpperCase();

       System.out.println(str);

 

      1. toUpperCase() 转换为小写

       例:      

 String str = "ABC";

       str = str.toLowerCase();

       System.out.println(str);

      1. 练习
  1. 输入一个字符串,判断这个字符串的长度如果小于6就输出“长度不够”,否则输出“正确”。

 

import java.util.Scanner;

public class two{

    public static void main(String[] args){

     Scanner input=new Scanner(System.in);

     System.out.println("输入一段字符串");

     String str=input.nextLine();

     if(str.length()<6){

     System.out.println("长度不够");

     }

     else

     System.out.println("输入正确");

    }

}

 

  1. 输入一个用户名,与一个密码,判断这个用户名与密码是否都等于lanqiao,并不区分大小写。

 

import java.util.Scanner;

public class two{

    public static void main(String[] args){

     Scanner input=new Scanner(System.in);

     System.out.printf("输入账号:");

     String name=input.nextLine();

     System.out.printf("输入密码:");

     String pwd=input.nextLine();

     if(name.equalsIgnoreCase(name)==pwd.equalsIgnoreCase(pwd)){    //equalsIgnoreCase()忽略大小写,判断字符串是否已知

     System.out.println("账号密码相同");

     }

     else {

        System.out.println("账号密码不一致");

    }

    }

}

  1. 输入一个小写字符串,输出这个字符串的大写形式。

 

import java.util.Scanner;

public class two{

    public static void main(String[] args){

     Scanner input=new Scanner(System.in);

     System.out.printf("输入字符串将它转为大写形式:");

     String str=input.nextLine();

     str=str.toUpperCase();      //toUpperCase()将小写转为大写

     System.out.println(str);

    }

}

 

  1. 输入一个字符串,格式如:我的名字叫:XXXX,要求使用字符串的方法提取出名字。

 

import java.util.Scanner;

public class two{

    public static void main(String[] args){  

    Scanner input=new Scanner(System.in);

     System.out.println("输入名字  格式如:我的名字叫:XXX");

     String name=input.nextLine();

     char[] ch = name.toCharArray();   //将字符串转为数组

        for (int i = 6; i < ch.length; i++) {   //从:之后输出数组

            System.out.print(ch[i]);

        }

    }

}

 

5、输入一个字符串,“我爱你,中华”,拆分之后分别输出

 

public class two{

    public static void main(String[] args){  

     System.out.println("将   我爱你,中华   拆分输出");

     String str="我爱你,中华";

     String[] s = str.split(",");      //split拆分输出

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

            System.out.println(s[i]);

        }

    }

}

  1. StringBuffer
    1. 概念

StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。

 

String:

一旦定义了数据,数据不可以改变

String a=”abc”;

a=”ttt”;

输出a,则是输出ttt,之前的abc没有改变(仍然占空间),ttt重新开辟空间,a指向ttt的空间。

如果内容需要频繁改变,建议不要用string,开辟新空间占内有且耗时间;

 

增强版String    

   StringBuffer直接在当前空间改变值,不开辟新空间

    1. 常用方法

StringBuffer类中的方法主要偏重于对于字符串的变化,例如追加、插入和删除等,这个也是StringBuffer和String类的主要区别

 

      1. append方法:追加内容到当前对象的末尾

例:           

   StringBuffer sb = new StringBuffer("person");

                sb.append("user");

              sb.append("pass");

 

      1. insert方法:插入内容

例:    

   StringBuffer sb = new StringBuffer(“TestString”);

       sb.insert(4,false);

      1. deleteCharAt和delete方法:

      

deleteCharAt:根据索引删除

              例:            

    StringBuffer sb = new StringBuffer(“Test”);

                  sb. deleteCharAt(1);

 

        

delete:删除指定区间以内的所有字符

              例:             

StringBuffer sb = new StringBuffer(“TestString”);

              sb. delete (1,4);

 

 

 

      1. setCharAt方法:修改内容

 

例:   

    StringBuffer sb = new StringBuffer(“abc”);

       sb.setCharAt(1,’D’);

 

      1. reverse方法:内容反转

例:

StringBuffer sb = new StringBuffer(“abc”);

sb.reverse();

 

  1. String字符串与StringBuffer实验

观察结果:比较执行时间

public class ReviewDemo{

       public static void main(String[] args) {

              System.out.println("==========String示例==============");

              String s = "";

              long begintime = System.currentTimeMillis();//开始时间

              for(int i = 1;i <= 100000;i++){

                     s += i;

              }

              long endtime = System.currentTimeMillis();//结束时间

              long time = endtime - begintime;//时间差

              System.out.println("运行时间为:"+time);

             

              System.out.println("==========StringBuffer示例========");

              StringBuffer s1 = new StringBuffer();

              s = "";

              begintime = System.currentTimeMillis();//开始时间

              for(int i = 1;i <= 100000;i++){

                     s = ""+i;

                     s1 = new StringBuffer(s);

              }

              endtime = System.currentTimeMillis();//结束时间

              time = endtime - begintime;//时间差

              System.out.println("运行时间为:"+time);

             

       }

}

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_41398448/article/details/84866699