String字符串常用函数以及示例 JAVA基础

简介: String字符串常用函数以及示例 JAVA基础

一、String类的介绍

String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。 字符串不变; 它们的值在创建后不能被更改。

二、字符串常用函数

1.int length() 获取字符串的长度

String str = "hello world!"; 声明并初始化
// 获取str的长度
System.out.println(str.length());
运行结果:
  12

2.char charAt(int index): .

  String str = "hello world!";
  // 截取下标为1的字符
System.out.println(str.charAt(1)); 返回指定索引处的char值

运行结果:
  e

3. int indexOf(int ch)

    String str = "hello world!";
    // 返回的是ch在字符串中第一次出现的索引位置
    System.out.println(str.indexOf("w"));
    运行结果:6

4. int indexOf(int ch,int fromIndex)

String str = "hello world!";
// 从formIndex指定位置开始,获取ch在字符串中出现的索引位置
    System.out.println(str.indexOf("w",7));
    运行结果:-1

5. int indexOf(String str)

String str = "hello world!";
//返回的是str在字符串中第一次出现的索引位置
        System.out.println(str.indexOf("d"));
        运行结果:10

6.lastIndexOf 返回指定字符在此字符串中最后一次出现处的索引

   String Str = new String("33923705321@qq.com");
    String SubStr1 = new String("qq");
    String SubStr2 = new String("com");
    System.out.print("查找字符 o 最后出现的位置 :" );
    System.out.println(Str.lastIndexOf( 'o' ));
    System.out.print("从第14个位置查找字符 o 最后出现的位置 :" );
    System.out.println(Str.lastIndexOf( 'o', 14 ));
    System.out.print("子字符串 SubStr1 最后出现的位置:" );
    System.out.println( Str.lastIndexOf( SubStr1 ));
    System.out.print("从第十五个位置开始搜索子字符串 SubStr1最后出现的位置 :" );
    System.out.println( Str.lastIndexOf( SubStr1, 15 ));
    System.out.print("子字符串 SubStr2 最后出现的位置 :" );
    System.out.println(Str.lastIndexOf( SubStr2 ));
    运行结果:  查找字符 o 最后出现的位置 :16
    从第14个位置查找字符 o 最后出现的位置 :-1
   子字符串 SubStr1 最后出现的位置:12
   从第十五个位置开始搜索子字符串 SubStr1最后出现的位置 :12
   子字符串 SubStr2 最后出现的位置 :15        

7.toUpperCase() 转换成大写 toLowerCase()转换成小写

8.String[] split(“字符”) 根据给定的正则表达式的匹配来拆分此字符串。形成一个新的String数组。

String str = "hello,world,你,好";
String[] strs = str.split(",");
for (String s : strs) {
    System.out.println(s);
}
运行结果:
  hello
    world
String str="username=? or username=? and pwd=?";
String[] str1=str.split("or|and");
       for (int i = 0; i < str1.length; i++) {
        System.out.print(" "+str1[i]);结果为username=?   username=?   pwd=?
    }

9.String trim()去掉字符串左右空格

10.String replace(char oldChar,char newChar)新字符替换旧字符

String str = "hello,world,你,好";
String replace = str.replace(",","-");
System.out.println(replace);

运行结果:
  hello-world-你-好

11.String substring(int beginIndex,int endIndex) 截取字符串,包括beginIndex位置的,不包括endIndex位置的

String str = "hello,world,你,好";
// 截取0-4位置的字符串,包括0,不包括4
String substring = str.substring(0, 4);
System.out.println(substring);

运行结果:
  hell

 String s = new String("33923705321@qq.com.ywy");
 System.out.println (    s.substring(1, s.lastIndexOf("@")));    //截取@之前的字符串
运行结果:33923705321

//        获得第一个点的位置
        int index=s .indexOf(".");
        index = s .indexOf(".", index + 1);

        //根据第二个点的位置,截取 字符串。得到结果 result
        String result=s .substring(index+1);
        System.out.println(result);//输出第二个点位置的字符
运行结果:ywy  

  1. boolean equalsIgnoreCase(String str2)
    忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值
    bolean equals(String str2) 比较两个字符串的值是否一模一样
String str = "hello world!";
String str2 = "HELLO WORLD!";
System.out.println(str.equalsIgnoreCase(str2));
System.out.println(str.equals(str2));

运行结果:
  true
  false

13.boolean contains(String str2) 判断一个字符串里面是否包含指定的内容,返回一个布尔值

String str = "hello world!";
System.out.println(str.contains("hel"));

运行结果:
  true
  1. boolean startsWith(String str)测试此字符串是否以指定的前缀开始。返回一个布尔值
    boolean endsWith(String str)测试此字符串是否以指定的后缀结束。返回一个布尔值
  2. String replaceAll(String str1,Stringstr2)将某个内容全部替换成指定内容
String str = "hello world!";
String replaceAll = str.replaceAll("l", "m");
System.out.println(replaceAll);

运行结果:
  hemmo wormd!

16.String replaceFirst(String str1,String str2) 将第一次出现的某个内容替换成指定的内容

String str = “hello world!”;

String replaceAll = str.replaceFirst(“l”, “m”);

System.out.println(replaceAll);

运行结果:

hemlo world!

17.字符串反转

   public static void fun(String string){
        char[] array = string.toCharArray();
         for(int i = 0; i < array.length/2; i++){
            char temp = array[i];
            array[i] = array[array.length - i - 1];
            array[array.length - i -1] = temp;
        }

        String str = String.valueOf(array);
        System.out.println(str); //传入abcde 输入edcba
    }

18.统计字符出现次数

  // 定义字符串
    String string = "fdafasfsfasf";

    // 定义map容器
    Map<Character, Integer> map = new HashMap<Character, Integer>();
    for (int i = 1; i < string.length(); i++) {

        char ch = string.charAt(i);

        if (map.containsKey(ch)) {
            int count = map.get(ch);
            count = count + 1;
            map.put(ch, count);
        } else {
            map.put(ch, 1);
        }
    }
    // 遍历map集合
    Set<Character> keySet = map.keySet();
    for (Character chars : keySet) {
        System.out.println("字符:" + chars + ",出现的次数为:" + map.get(chars));
    }

}
运行结果 :字符:a,出现的次数为:3  字符:s,出现的次数为:3 字符:d,出现的次数为:1 字符:f,出现的次数为:4


  //获取一个字符串,查找这个字符串出现的次数;  输入abcabcacb ,"a"   输出3
 public static int getStringCount(String str, String key) {
int count = 0;
int index = 0;
int num = str.indexOf(key);
while ((index = str.indexOf(key)) != -1) {
    count++;
    str = str.substring(str.indexOf(key) + key.length());
}
return count;
  }

18.将一个数组从左开始第几位之前的进行旋转:左旋数组

如:将"abcdef"第2位之前(a为0号位置)进行旋转----》“cdefab”。

public class TextDemo4 {
public static void leftRotateString(String str, int n) {
    char[]array1 = str.toCharArray();//将给定字符串转换成数组
    char[]array2 = new char[array1.length];//定义新数组存储旋转后的元素
    int j = 0;//i表示源数组的下标,j表示新数组的下标
    for (int i = n; i <array1.length ; i++) {
        array2[j] = array1[i];
        j++;
    }
    for (int i = 0; i <n ; i++) {
        array2[j] =array1[i];
        j++;
    }
    String str1 = new String(array2);
    System.out.println(str1);
}
public static void main(String[] args) {
    leftRotateString("abcdef",2);
 }
}


相关文章
|
15天前
|
Java 关系型数据库 MySQL
2025 年互联网公司校招 Java 面试题总结及答案实操示例解析
本项目基于Spring Boot 3与Java 17技术栈,围绕校园招聘常见面试题,提供核心知识点的实操示例。涵盖多线程、RESTful API设计、数据库操作(Spring Data JPA)、事务管理及异常处理等。通过完整代码实现与运行步骤,帮助理解用户管理、线程池配置等实际应用场景。资源包含项目结构、关键代码示例(如User实体类、UserService服务层、ThreadService多线程实现)及数据库迁移脚本,适合深入学习与实践。环境要求:JDK 17+、Maven 3.8+、MySQL 8.0+。
64 3
|
3月前
|
数据处理
鸿蒙开发:ArkTs字符串string
字符串类型是开发中非常重要的一个数据类型,除了上述的方法概述之外,还有String对象,正则等其他的用处,我们放到以后得篇章中讲述。
163 19
|
3月前
|
存储 缓存 安全
Java 字符串详解
本文介绍了 Java 中的三种字符串类型:String、StringBuffer 和 StringBuilder,详细讲解了它们的区别与使用场景。String 是不可变的字符串常量,线程安全但操作效率较低;StringBuffer 是可变的字符串缓冲区,线程安全但性能稍逊;StringBuilder 同样是可变的字符串缓冲区,但非线程安全,性能更高。文章还列举了三者的常用方法,并总结了它们在不同环境下的适用情况及执行速度对比。
127 17
|
3月前
|
存储 缓存 安全
Java字符串缓冲区
字符串缓冲区是用于处理可变字符串的容器,Java中提供了`StringBuffer`和`StringBuilder`两种实现。由于`String`类不可变,当需要频繁修改字符串时,使用缓冲区更高效。`StringBuffer`是一个线程安全的容器,支持动态扩展、任意类型数据转为字符串存储,并提供多种操作方法(如`append`、`insert`、`delete`等)。通过这些方法,可以方便地对字符串进行添加、插入、删除等操作,最终将结果转换为字符串。示例代码展示了如何创建缓冲区对象并调用相关方法完成字符串操作。
81 13
|
7月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
219 83
|
3月前
|
Java 程序员
课时16:String字符串
课时16介绍了Java中的String字符串。在Java中,字符串使用`String`类表示,并用双引号定义。例如:`String str = &quot;Hello world!&quot;;`。字符串支持使用“+”进行连接操作,如`str += &quot;world&quot;;`。需要注意的是,当“+”用于字符串与其他数据类型时,其他类型会先转换为字符串再进行连接。此外,字符串中可以使用转义字符(如`\t`、`\n`)进行特殊字符的处理。掌握这些基本概念对Java编程至关重要。
|
7月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
132 26
|
7月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
237 8
|
15天前
|
存储 编译器 C语言
关于string的‘\0‘与string,vector构造特点,反迭代器与迭代器类等的讨论
你真的了解string的'\0'么?你知道创建一个string a("abcddddddddddddddddddddddddd", 16);这样的string对象要创建多少个对象么?你知道string与vector进行扩容时进行了怎么的操作么?你知道怎么求Vector 最大 最小值 索引 位置么?
|
3月前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
98 11