51.【Java String方法的小结】

1.String

1.概述:java.util.String.包中。使用的时候不需要导包
2.Java 程序中的所有字符串文字.如(sdsdsffsd)。都被视为此类的对象
3.字符串不可改变,他们的值在创建后不能进行改变.

1.1创建String 对象的两种方式:

1.直接赋值;
2.使用new进行创建

public class hello {
    public static void main(String[] avgs) {
        //直接赋值
    String s="我是小明";
    System.out.println("使用直接赋值的方式打印出来的数组是:"+s);
    //设置为空的字符串
    String s2=new String();
    System.out.println("1"+s2+"2");
    //设置有参数的字符串
    String s3=new String("hello world");
    System.out.println("脱裤子放屁赋值字符串:"+s3);
    //通过字符数组进行进行创建一个新的字符串对象
        char []arr=new char[]{'a','b','c'};   //主要运用与修改
        String s4=new String(arr);
        System.out.println(s4);
        //传递以恶搞字节数组,根据字节数组的内存在创建一个新的字符串的对象
        byte []s5=new byte[]{97,98,99,100};  //相当与ascll码
        String s6=new String(s5);
        System.out.println(s6);
    }
}

在这里插入图片描述

2.内存图

在这里插入图片描述

当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在.
不存在:创建新的
存在:复用

在这里插入图片描述

3.字符串的比较:

3.1使用非函数

==号的基本原理:

A:基本数据类型:

> int a=10; int b=20; System.out.println(a==b); / /fslae    比较的时数值

B:引用数据类型:

两个new出来的 (假)

String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1==s2);  //false 比较的是地址值,不是数值.

直接赋值出来的 (真)

String s1=”abc“;
String s2="abc";
System.out.println(s1==s2);     //true  会调用复用

直接赋值和new出来的比较 (假)

String s1=”abc“;
String s2=new String("abc");
System.out.println(s1==s2);  //false ,放的地址都不一样

两个键盘录入的 (假)

import java.util.*;
public class hello {
    public static void main(String[] avgs) {
    Scanner sc=new Scanner(System.in);
    String s=sc.next();
    String s1=sc.next();
    System.out.println(s==s1);

    }
}

在这里插入图片描述

3.2运用函数进行比较

boolean 数据类型 = 字符串名. eauals(s2); //这个区分大小写

两个直接赋值的字符串 (真)


public class hello {
    public static void main(String[] avgs) {
     String s="abcd123";
     String s1="abcd123";
     String s2="ABCD123";
     boolean result =s.equals(s1);          //不可以忽略大小写
    System.out.println(result);
    boolean flag =s.equals(s2);
        System.out.println(flag);
        boolean flag1=s.equalsIgnoreCase(s2);   //可以忽略大小写
        System.out.println(flag1);
    }
}

在这里插入图片描述

键盘录入的字符串是new出来的和直接赋值的 (真)

import java.util.*;
public class hello {
    public static void main(String[] avgs) {
    Scanner sc=new Scanner(System.in);
    String s="abc";
    String s1=sc.next();
    boolean flag=s.equals(s1);
    System.out.println(flag);

    }
}

在这里插入图片描述

两个键盘输入的进行比较 (true)

import java.util.*;
public class hello {
    public static void main(String[] avgs) {
    Scanner sc=new Scanner(System.in);
    String s=sc.next();
    String s1=sc.next();
    boolean flag=s.equals(s1);
    System.out.println(flag);

    }
}

在这里插入图片描述

3.3运用函数判断相等与否的实列

密码用户登入信息

import java.util.*;
public class hello {
    public static void main(String[] avgs) {
    Scanner sc=new Scanner(System.in);
    String username="liming";
    String userPassword="121788";
    int count=3;
        while (count>0) {
            count--;
            System.out.println("请输入您的用户名:");
            String username1=sc.next();
            System.out.println("请输入您的用户密码:");
            String  userpassword=sc.next();
            if(username1.equals(username)&&userpassword.equals(userPassword)) {
                System.out.println("登入成功!!!!!");
                break;
            }
            else {
                System.out.println("登入失败,您还有"+(count)+"次机会");
            }
        }
    }
}

在这里插入图片描述

2.字符串的索引

1.基本格式:

Scanner sc=new Scanner(Sytsem.in);
String s;
s=sc.next();
for(int i=0;i<s.length();i++)
{
	s.charAt(i);
}

求小写字母,大写字母,数字的个数

import java.util.*;
public class hello {
    public static void main(String[] avgs) {
     System.out.println("请输入您的字符串");
     Scanner sc=new Scanner(System.in);
     String s;
     s=sc.next();
     int small=0;
     int big=0;
     int math=0;
        System.out.println(s);
     for(int i=0;i<s.length();i++){

         if(s.charAt(i)>='a'&&s.charAt(i)<='z')
         {
             small++;
         }
         if(s.charAt(i)>='A'&&s.charAt(i)<='Z')
         {
             big++;
         }
         if(s.charAt(i)>'0'&&s.charAt(i)<'9')
         {
             math++;
         }
     }
     System.out.println("数字有:"+math);
     System.out.println("小写数量为:"+small);
     System.out.println("大写数字为:"+big);
    }
}

2.基本操作和算法:

import java.util.*;
public class hello {
    public static void main(String[] avgs) {
        int arr[]=new int[3];
        toString(arr);
    }
    public static void toString(int []arr)
    {
        //长度为0的意思是 int []a=new int[0];  数组为空的意思是指:   int []a=new int[]{};
        if(arr==null)//判断数组是否为空
        {
            System.out.println("");   //返回一个长度为0的"“
        }
        if(arr.length==0)//判断数组的长度是否为0
        {
            System.out.println("[]");
        }
        System.out.print("[");
        for(int i=0;i<arr.length;i++)
        {
            if(i<arr.length-1){
                System.out.print(arr[i]+",");
            }
        else {
            System.out.print(arr[i]);
            }
        }
        System.out.print("]");
    }
}

3.手机号的加密:(字符串截取)

基本格式:

s.substring(a,b);  //截取字符串s从a到b,但包括a不包括b;
s.substring(c);  //截取从c索引开始到末尾的所有元素
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
    public static void main(String []avgs) {
        String s="16639058447";
        String s1=s.substring(0,3);
        String s2=s.substring(7);
        String result=s1+"****"+s2;
        System.out.println(result);
    }
}

在这里插入图片描述

4.拼接字符串StringBulider()容器

定义:

SringBuilder sb=new StringBulider()  

添加字符串:

sb.append(a);

获取长度:

sb.length()

转换成字符串

sb.toString();

倒序

sb.reveser();

展示:

public class SquenceListTest {
    public static void main(String []avgs) {
        StringBuilder sb=new StringBuilder("傻瓜");  //创建对象
        sb.append(1);   //进行添加
        sb.append(1.2);
        sb.append(true);
        sb.reverse();   //进行翻转输出
        System.out.println(sb);
        int length=sb.length();    //计算合并后的长度
        System.out.println(length);
        String s=sb.toString();   //把容器转换成字符串
        System.out.println(s);
    }
}

在这里插入图片描述

4.1举列子:

public class SquenceListTest {
    public static void main(String []avgs) {
        int []arr=new int[]{1,2,3};
       String s=arrTo(arr);
        System.out.println(s);
    }
    public static String arrTo(int []arr){
        StringBuilder sb=new StringBuilder();
        System.out.print("[");
        for(int i=0;i<arr.length;i++){
            if(i==arr.length-1){
                sb.append(arr[i]).append("]");
            }else{
                sb.append(arr[i]).append(",");
            }
        }
        String s=sb.toString();
        return s;
    }
}

在这里插入图片描述

5.新时代拼接符号StringJoiner()

基本格式:

StringJoiner(间隔符号)

代码展示:

StringJoiner(“间隔符号”,"开始符号","结束符号")
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
    public static void main(String []avgs) {
    StringJoiner sj=new StringJoiner(",","[","]");
    sj.add("aaa").add("bbb").add("ccc");
        System.out.println(sj);
    }
}

在这里插入图片描述

添加(只能是字符串)

sj.add();

代码展示:

import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
    public static void main(String []avgs) {
    StringJoiner sj=new StringJoiner("---");
    sj.add("aaa").add("bbb").add("ccc");
        System.out.println(sj);
    }
}

在这里插入图片描述

长度:

sj.length();
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
    public static void main(String []avgs) {
    StringJoiner sj=new StringJoiner(",","[","]");
    sj.add("aaa").add("bbb").add("ccc");
        System.out.println(sj);
        System.out.println(sj.length());
    }
}

在这里插入图片描述

转换成字符串:

import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
    public static void main(String []avgs) {
    StringJoiner sj=new StringJoiner(",","[","]");
    sj.add("aaa").add("bbb").add("ccc");
        System.out.println(sj);
        System.out.println(sj.length());
        String str=sj.toString();
        System.out.println(str);
    }
}

在这里插入图片描述

6.字符串转换成字符的操作(toCharArray)

基本格式:

s.tocharArray();

代码展示:

import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
    public static void main(String []avgs) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char []arr=str.toCharArray();
        int  c=arr[0]-32;
        System.out.println((char)c);
    }
}

6.综合演练

假如说一个字符串为"abcd",进行旋转一次变成dabc,第二次cdab…
判断是否这两个字符串是否会在n此旋转后回想等,如果相等,那么就返回true,否则返回else.

import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
    public static void main(String []avgs) {
    Scanner sc=new Scanner(System.in);
    String str=sc.next();
        System.out.println(JudgeEqual(str));
    }
    public static boolean JudgeEqual(String s){  //判断是否相等
        StringBuilder sb=new StringBuilder();
        sb.append(s);
        sb.reverse();
        String st=sb.toString();
        for(int i=0;i<s.length();i++){
            String str=reverse(s);
            if(str.equals(st)){
                return true;
            }
        }
        return false;
    }
    public static String reverse(String s){  //进行截取字符
        String start=s.substring(0,1);
        String end=s.substring(1);
        String str=end+start;
        return  str;
    }
}

评论 112
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉士先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值