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


相关文章
|
6天前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
17 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
10天前
|
算法 Java Linux
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
这篇文章介绍了如何使用Java的Graphics2D类在图片上合成另一个照片,并将照片切割成圆形头像的方法。
21 1
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
|
2天前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
10 2
|
4天前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
12 1
|
8天前
|
Java 编译器
Java“返回类型为 void 的方法不能返回一个值”解决
在 Java 中,如果一个方法的返回类型被声明为 void,那么该方法不应该包含返回值的语句。如果尝试从这样的方法中返回一个值,编译器将报错。解决办法是移除返回值语句或更改方法的返回类型。
|
8天前
|
Java
让星星⭐月亮告诉你,Java NIO之Buffer详解 属性capacity/position/limit/mark 方法put(X)/get()/flip()/compact()/clear()
这段代码演示了Java NIO中`ByteBuffer`的基本操作,包括分配、写入、翻转、读取、压缩和清空缓冲区。通过示例展示了`position`、`limit`和`mark`属性的变化过程,帮助理解缓冲区的工作原理。
17 2
|
8天前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
14 1
|
8天前
|
Java
让星星⭐月亮告诉你,Java synchronized(*.class) synchronized 方法 synchronized(this)分析
本文通过Java代码示例,介绍了`synchronized`关键字在类和实例方法上的使用。总结了三种情况:1) 类级别的锁,多个实例对象在同一时刻只能有一个获取锁;2) 实例方法级别的锁,多个实例对象可以同时执行;3) 同一实例对象的多个线程,同一时刻只能有一个线程执行同步方法。
9 1
|
13天前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
19 5
|
15天前
|
IDE Java 开发工具
Java“未封闭的 String 表达式”怎么解决
要解决Java中的“未封闭的 String 表示”问题,需检查并修正字符串字面量,确保每个字符串被正确地用双引号括起来。若字符串跨越多行,可使用字符串连接操作符(+)或引入文本块(JDK 13 及以上版本)。这能帮助避免语法错误,并使代码更整洁易读。