每日一道面试题之String常用的方法有哪些?

简介: 每日一道面试题之String常用的方法有哪些?

String常用的方法有哪些?

根据功能大致可分为:常见String类的获取,常见String类的判断,常见String类的转换,常见String类的其他常用功能;


获取功能常用的方法有以下几种:

 public class Test1 {
     public static void main(String[] args) {
           String str="Hello,siri";
           //length():获取字符串的长度
           System.out.println(str+"的长度为:"+str.length());
           //charAt():获取指定索引处的字符
           System.out.println(str+"指定索引处的字符为:"+str.charAt(8));
           //indexOf("l"):获取指定字符第一次出现的位置
           System.out.println(str+"中,指定字符第一次出现的位置为:"+str.indexOf("l"));
           //substring():获取从指定位置开始到末尾的子字符串
           System.out.println("截取"+str+"子字符串为:"+str.substring(4));
           //substring():获取从指定位置开始到指定位置(不包含右边)结束的子字符串
           System.out.println("截取"+str+"子字符串为:"+str.substring(4,6));
         }
}


输出如下所示:

Hello,siri的长度为:10
Hello,siri指定索引处的字符为:r
Hello,siri中,指定字符第一次出现的位置为:2
截取Hello,siri子字符串为:o,siri
截取Hello,siri子字符串为:o,


判断功能常用的方法有以下几种:

 public class Test1 {
     public static void main(String[] args) {
           String str1="Hello,siri";
           String str2="hello";
           //equals():比较两个字符串的内容是否相同,区分大小写
           System.out.println("字符串"+str1+"和"+str2+"是否内容相同?"+str1.equals(str2));
           //contains():判断字符串是否包含传递进来的字符串
           System.out.println("字符串"+str1+"是否包含"+str2+"?"+str1.contains(str2));
           //startsWith():判断字符串是否以传递进来的字符串开头
           System.out.println("字符串"+str1+"是否以"+str2+"开头?"+str1.startsWith(str2));
          //endsWith():判断字符串是否以传递进来的字符串结尾
          System.out.println("字符串"+str1+"是否以"+str2+"结尾?"+str1.startsWith(str2));
          //isEmpty():判断字符串的内容是否为空串
          System.out.println(str1+"是否为空串?"+str1.isEmpty());
          System.out.println(str2+"是否为空串?"+str2.isEmpty());
         }
}

输出如下所示:

字符串Hello,siri和hello是否内容相同?false
字符串Hello,siri是否包含hello?false
字符串Hello,siri是否以hello开头?false
字符串Hello,siri是否以hello结尾?false
Hello,siri是否为空串?false
hello是否为空串?false

转换功能常用的方法有以下几种:

举例:

public class Test {
    public static void main(String[] args) {
        //getBytes():将字符串转化为字节数组--->一个字节数组,每个元素都表示字符串中对应位置的字符的ASCII码值
        String str="abcdefg";
        byte[] bytelist = str.getBytes();
        for(byte key: bytelist){
            System.out.println(key);
        }
        //toCharArray():将字符串转化为字符数组
        char[] toCharArray=str.toCharArray();
        for(char key: toCharArray){
            System.out.println(key);
        }
        //valueOf():将字符数组转换成字符串,ValueOf可以将任意类型转为字符串
        System.out.println( String.valueOf(toCharArray));
        String string="Hello,SiRi";
        String string1="Good evening";
        //toLowerCase():将字符串转为小写
        System.out.println(string+"转换为小写:"+string.toLowerCase());
        //toUpperCase():将字符串转为大写
        System.out.println(string+"转换为大写:"+string.toUpperCase());
        //concat():实现字符串的拼接
        System.out.println(string+"和"+string1+"拼接的结果为:"+string.concat(string1));
    }
}

输出如下:

97
98
99
100
101
102
103
a
b
c
d
e
f
g
abcdefg
Hello,SiRi转换为小写:hello,siri
Hello,SiRi转换为大写:HELLO,SIRI
Hello,SiRi和Good evening拼接的结果为:Hello,SiRiGood evening

关于String的其他常用功能如下所示:

public class Test {
    public static void main(String[] args) {
        String string1="I Love Xian";
        //将指定的字符进行互换
        System.out.println(string1.replace('e','p'));
        //将指定的字符串进行互换
        System.out.println(string1.replace(string1,"I Love Beijing"));
        //trim():去除字符串两端的空格
        String string2="       I Love Shanghai    ";
        System.out.println(string2.trim());
    }
}

输出:

I Lovp Xian
I Love Beijing
I Love Shanghai

java中的compareTo方法:

如下所示:

public class Test {
    public static void main(String[] args) {
        //当两个字符串的首字母不相同时,返回首字母之间的ASCII差值
        String str1="abc";
        String str2="ccd";
        System.out.println(str1.compareTo(str2));
        //当两个字符串的首字母相同时,则往后进行比较,直到出现字符不同的,返回其ASCII差值
        String str3="abc";
        String str4="abg";
        System.out.println(str3.compareTo(str4));
        //当两个字符串的长度不同,但可参与比较的字符都是相同时,返回其字符串长度的差值
        String str5="abc";
        String str6="abc1234567";
        System.out.println(str5.compareTo(str6));
    }
}

输出如下所示:

-2
-4
-7

注意:compareTo方法不能用来进行数字之间的比较,且进行字符比较的过程中是不区分大小写的

相关文章
|
29天前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
186 5
|
4月前
|
Java
介绍String.format()方法中的格式占位符用法。
通过综合使用它们,可以在Java中构造非常具体和高度定制的输出格式。这对于输出报道、创建用户界面或者任何需要精确控制输出格式的场合都非常有用。记住,当使用格式化方法时,需要确保提供的输入参数与占位符类型匹配,否则会抛出 java.util.IllegalFormatException。
572 0
|
5月前
|
人工智能 前端开发 Java
Java 面试资料中相关代码使用方法与组件封装方法解析
这是一份详尽的Java面试资料代码指南,涵盖使用方法与组件封装技巧。内容包括环境准备(JDK 8+、Maven/Gradle)、核心类示例(问题管理、学习进度跟踪)、Web应用部署(Spring Boot、前端框架)、单元测试及API封装。通过问题库管理、数据访问组件、学习进度服务和REST接口等模块化设计,帮助开发者高效组织与复用功能,同时支持扩展如用户认证、AI推荐等功能。适用于Java核心技术学习与面试备考,提升编程与设计能力。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
123 6
Java 面试资料中相关代码使用方法与组件封装方法解析
|
7月前
|
人工智能 算法 数据库
美团面试:LLM大模型存在哪些问题?RAG 优化有哪些方法?_
美团面试:LLM大模型存在哪些问题?RAG 优化有哪些方法?_
|
10月前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
391 9
|
10月前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
449 12
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
257 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
12月前
|
存储 安全 Java
美团面试:String 为什么 不可变 ?(90%答错了,尼恩来一个绝世答案)
45岁老架构师尼恩分享Java面试心得,涵盖String不可变性、字符串常量池、面试技巧等内容。尼恩强调,掌握深层技术原理,如String不可变性的真正原因,可在面试中脱颖而出,赢得高薪Offer。此外,尼恩还提供了大量技术资源和面试指导,帮助求职者提升技术水平,顺利通过大厂面试。
|
12月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
444 4
|
11月前
|
缓存 安全 Java
【JavaEE】——单例模式引起的多线程安全问题:“饿汉/懒汉”模式,及解决思路和方法(面试高频)
单例模式下,“饿汉模式”,“懒汉模式”,单例模式下引起的线程安全问题,解锁思路和解决方法
下一篇
开通oss服务