Java八大常用类(三) String类(重要,重点掌握)

简介: 字符串相关类,面试问的多,但是应用简单String类的简单掌握方法package oop2.demo06;import javax.sound.midi.Soundbank;import java.util.Locale;import java.util.UUID;public class StringB { public static void main(String[] args) { String a = "beijing"; String b = ""; //空字符串 String c = null;

字符串相关类,面试问的多,但是应用简单

String类的简单掌握方法

package oop2.demo06;
import javax.sound.midi.Soundbank;
import java.util.Locale;
import java.util.UUID;
public class StringB {
    public static void main(String[] args) {
        String a = "beijing";
        String b = "";   //空字符串
        String c = null;  //空对象   不能使用isEmpty() 方法
        System.out.println(a.length());   //返回字符串的长度     重要
        System.out.println(b.isEmpty());   //是否为空
        System.out.println(a.startsWith("ei"));    //判断是否是以  ei 开头
        System.out.println(a.endsWith("ing"));   //判断是否是 以  ing 结尾
        System.out.println(a.toUpperCase());    //转换为英文大写
        System.out.println(a.toLowerCase());   //转为小写
        System.out.println("================================字符串查找方法(全部掌握)=======================");
        System.out.println(a.charAt(0));    //查找字符串中的第n个字母 (底层代码是以char类型的数组,数字从0开始)
        System.out.println(a.indexOf("i"));   //查找字符串中i,第一次出现的时候,数组索引数值,根据指定的字符串查询指定下标,找不到返回-1
        System.out.println(a.indexOf("j",2));   //从指定位置查询字符下标.从数组下标为(2)开始,顺序找,找到j的字符下标
        System.out.println(a.lastIndexOf("j",6));   //从数组下标为(6)开始找开始,倒序找,找到j的字符下标
        System.out.println(a.substring(2,6));  //从数组下标为(2)到数组下标(6)截取字符串,找到j的字符下标
        System.out.println(a.substring(2));    //从数组下标为(2)开始截取字符串,一直到结束
        String fileName = "2.3.93.jpg";
        int i = fileName.lastIndexOf(".");
        System.out.println(i);
        //文件后缀
        String substring = fileName.substring(i);
        System.out.println(substring);
        //文件名称
        String uuid = UUID.randomUUID().toString();   //随机生成文件名
        System.out.println(uuid+substring);
    }
}

字符串的分割、连接、去空格等方法

package oop2.demo06;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
public class StringC {
    public static void main(String[] args) throws UnsupportedEncodingException {
        String str = "beijing北京";
        System.out.println("========================字符串中的转化方法======================");
        byte[] bytes = str.getBytes();
        String str2 = new String(bytes,"GBK");   //可以给指定的字符串进行重新的编码,我们以后会使用
        System.out.println(Arrays.toString(bytes));
        System.out.println("========================字符串中的拼接、替换、查询是否含有======================");
        String str3 = "b-j-n-u";
        System.out.println(str3.contains("b"));         //判断是否含有指定的字符串,掌握
        System.out.println(str3.replace("b","北"));     //把b替换成北  。替换指定的字符串内容,掌握
        System.out.println(str3.replaceAll("j","京"));   //替换指定的字符串内容,支持正则表达式,掌握
        System.out.println(str3.concat("yyy"));     //b-j-n-uyyy
        str3.concat("a");
        str3.concat("b");
        str3.concat("c");
        System.out.println(str3);    //b-j-n-u
        str3= str3.concat("a");
        str3= str3.concat("b");
        str3= str3.concat("c");
        System.out.println(str3);    //b-j-n-uabc
        //str3= str3.concat("a").concat("b").concat("c");
        System.out.println("========================字符串分割(掌握)======================");
        String str5 = "b-j-n-u";
        String[] split =  str5.split("-");
        System.out.println(Arrays.toString(split));     //分割,按照指定的字符位置开始分割字符串
        String str6 = " b j n u ";
        System.out.println("------->"+str6.trim()+"<--------");   //去除字符串中的开始和结束的空格
    }
}

字符串的比较大小

package oop2.demo06;
public class StringD {
    public static void main(String[] args) {
        String str = "bjnu";
        String str2 = "Bjnu";
        System.out.println(str.equals(str2));   //是否相等
        System.out.println(str.compareTo(str2));   //比较两个字符串的大小,区分大小写的
        System.out.println(str.compareToIgnoreCase(str2));  //   比较字符串的大小写,不区分大小写
    }
}

举例子

package oop2.home;
/*
    获得指定后缀yy.uu.jj.png
 */
public class Demo1 {
    public static void main(String[] args) {
        String str = "yy.uu.jj.png";
        int i = str.lastIndexOf(".");     //获得最后一个.的下标
        System.out.println(str.substring(i));   //根据最后一个点的下标,开始截取
    }
}
package oop2.home;
/*
    按照要求把对应学科提取出来   ”java-前端-AI-后台-大数据“
 */
import java.util.Arrays;
public class Demo2 {
    public static void main(String[] args) {
        String str = "java-前端-AI-后台-大数据";
        String[] split = str.split("-");
        System.out.println(Arrays.toString(split));
    }
}
package oop2.home;
/*
    从键盘录入一个String身份证,判断是否合法:
    位数是否是18位数
    前17位数必须是数字
    最后一位可以是数字或者是X
 */
public class Demo3 {
    public static void main(String[] args) {
        String str = "440906200001253285";
        if(str.length()==18){
            for (int i = 0; i < str.length()-1; i++) {
                char c = str.charAt(i);
                if(!Character.isDigit(c)){
                    System.out.println("用户身份证前17位必须是数字");
                    return;
                }
            }
            char c2 = str.charAt(17);
            if(Character.isDigit(c2)||"X".equals(Character.toString(c2))||'X'==c2){
                System.out.println("身份证合法");
            }else {
                System.out.println("不合法");
            }
        }else {
            System.out.println("身份证必须是18位");
        }
    }
}
package oop2.home;
/*
    校验一个邮箱是否合法:123456789@qq.com
    必须有@
    . 和 @不能在开头和结尾
    .必须在@之后,且不能相邻
    不能有连续的两个.
    @只能有一个
    . 只能有一个
 */
public class Demo4 {
    public static void main(String[] args) {
        String str = "123456789@qq.com";
        //获得第一个@的下标
        int a1 = str.indexOf("@");
        //获得最后一个@的下标
        int a2 = str.lastIndexOf("@");
        //获得第一个 .  的位置
        int b1 = str.indexOf(".");
        //获得最后一个  . 的位置
        int b2 = str.lastIndexOf(".");
        //获得 .. 的下标
        int i = str.indexOf("..");
        /*
            b1>a1+1   所表达的含义
            b1的值一定是大于0
            @的位置在 . 之前的    @的位置就一定不会在最后
            . 必须在@之后且不相邻
         */
        if (a1>0 && a1==a2 && b1>a1+1 && b2<str.length()-1 && i<0){
            System.out.println("合法");
        }else {
            System.out.println("非法");
        }
    }
}
相关文章
|
5天前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
17 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
1天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
13 6
|
3天前
|
IDE Java 编译器
Java:如何确定编译和运行时类路径是否一致
类路径(Classpath)是JVM用于查找类文件的路径列表,对编译和运行Java程序至关重要。编译时通过`javac -classpath`指定,运行时通过`java -classpath`指定。IDE如Eclipse和IntelliJ IDEA也提供界面管理类路径。确保编译和运行时类路径一致,特别是外部库和项目内部类的路径设置。
|
2天前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
9 2
|
3天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。
【10月更文挑战第14天】从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。本文深入探讨Set的核心理念,并通过示例代码展示了HashSet和TreeSet的特点和应用场景。
8 2
|
3天前
|
存储 Java 索引
Java 中集合框架的常见接口和类
【10月更文挑战第13天】这些只是集合框架中的一部分常见接口和类,还有其他一些如 Queue、Deque 等接口以及相关的实现类。理解和掌握这些集合的特点和用法对于高效编程非常重要。
|
4天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
10 1
|
8天前
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
25 4
|
8天前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
21 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
1月前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
34 0
java基础(13)String类