51.【Java String方法的小结】(一)

简介: 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("]");
    }
}


相关文章
|
20天前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
26天前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
64 9
|
5天前
|
存储 JavaScript Java
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
Java 中的 String Pool 简介
|
11天前
|
缓存 安全 Java
java 为什么 String 在 java 中是不可变的?
本文探讨了Java中String为何设计为不可变类型,从字符串池的高效利用、哈希码缓存、支持其他对象的安全使用、增强安全性以及线程安全等方面阐述了不可变性的优势。文中还通过具体代码示例解释了这些优点的实际应用。
java 为什么 String 在 java 中是不可变的?
|
22天前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
35 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
5天前
|
存储 Java
Java 11 的String是如何优化存储的?
本文介绍了Java中字符串存储优化的原理和实现。通过判断字符串是否全为拉丁字符,使用`byte`代替`char`存储,以节省空间。具体实现涉及`compress`和`toBytes`方法,前者用于尝试压缩字符串,后者则按常规方式存储。代码示例展示了如何根据配置决定使用哪种存储方式。
|
18天前
|
安全 Java 开发者
Java中WAIT和NOTIFY方法必须在同步块中调用的原因
在Java多线程编程中,`wait()`和`notify()`方法是实现线程间协作的关键。这两个方法必须在同步块或同步方法中调用,这一要求背后有着深刻的原因。本文将深入探讨为什么`wait()`和`notify()`方法必须在同步块中调用,以及这一机制如何确保线程安全和避免死锁。
31 4
|
18天前
|
Java
深入探讨Java中的中断机制:INTERRUPTED和ISINTERRUPTED方法详解
在Java多线程编程中,中断机制是协调线程行为的重要手段。了解和正确使用中断机制对于编写高效、可靠的并发程序至关重要。本文将深入探讨Java中的`Thread.interrupted()`和`Thread.isInterrupted()`方法的区别及其应用场景。
22 4
|
16天前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
21 1
|
21天前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
44 7