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


相关文章
|
3月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
288 18
|
3月前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
231 4
|
4月前
|
算法 安全 Java
除了类,Java中的接口和方法也可以使用泛型吗?
除了类,Java中的接口和方法也可以使用泛型吗?
174 11
|
3月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
326 5
|
4月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
5月前
|
算法 Java 开发者
Java 项目实战数字华容道与石头迷阵游戏开发详解及实战方法
本文介绍了使用Java实现数字华容道和石头迷阵游戏的技术方案与应用实例,涵盖GUI界面设计、二维数组操作、游戏逻辑控制及自动解法算法(如A*),适合Java开发者学习游戏开发技巧。
330 46
|
5月前
|
存储 SQL 缓存
Java字符串处理:String、StringBuilder与StringBuffer
本文深入解析Java中String、StringBuilder和StringBuffer的核心区别与使用场景。涵盖字符串不可变性、常量池、intern方法、可变字符串构建器的扩容机制及线程安全实现。通过性能测试对比三者差异,并提供最佳实践与高频面试问题解析,助你掌握Java字符串处理精髓。
|
5月前
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
463 0
|
5月前
|
存储 Java 数据处理
Java映射操作:深入Map.getOrDefault与MapUtils方法
结合 `getOrDefault`方法的简洁性及 `MapUtils`的丰富功能,Java的映射操作变得既灵活又高效。合理地使用这些工具能够显著提高数据处理的速度和质量。开发人员可以根据具体的应用场景选择适宜的方法,以求在性能和可读性之间找到最佳平衡。
209 0
|
5月前
|
缓存 人工智能 NoSQL
Java中实现Token设置过期时间的方法
本文介绍了在Java应用中实现Token设置过期时间的多种方法,包括使用JWT和Redis缓存,并结合定时任务清理过期Token,以提升系统安全性与用户隐私保护。
529 0