Java 字符串的操作集合(记录日常学习的demo)

133 阅读6分钟

Java 实例 - 字符串比较

以下实例中我们通过字符串函数 compareTo (string) ,compareToIgnoreCase(String) 及 compareTo(object string) 来比较两个字符串,并返回字符串中第一个字母ASCII的差值。

package com.example.yan.java_operation.JAVA实例;

public class 字符串比较 {


    public static void main(String args[]) {
        String str = "Hello World";
        String anotherString = "hello world";
        Object objStr = str;

        System.out.println(str.compareTo(anotherString));
        System.out.println(str.compareToIgnoreCase(anotherString));  //忽略大小写
        System.out.println(str.compareTo(objStr.toString()));

    }

}
-32
0
0

在这里插入图片描述

Java 实例 - 查找字符串最后一次出现的位置

以下实例中我们通过字符串函数 strOrig.lastIndexOf(Stringname) 来查找子字符串 Stringname 在 strOrig 出现的位置:

从下标0开始 第19位是该单词

实例代码如下:

public class SearchlastString {
   public static void main(String[] args) {
      String strOrig = "Hello world ,Hello Nowcoder";
      int lastIndex = strOrig.lastIndexOf("Nowcoder");
      if(lastIndex == - 1){
         System.out.println("没有找到字符串 Nowcoder");
      }else{
         System.out.println("Nowcoder 字符串最后出现的位置: "+ lastIndex);
      }
   }
}

以上代码实例输出结果为:

Nowcoder 字符串最后出现的位置: 19

在这里插入图片描述

Java 实例 - 删除字符串中的一个字符

以下实例中我们通过字符串函数 substring() 函数来删除字符串中的一个字符,我们将功能封装在 removeCharAt 函数中。

实例代码如下:

public class Main {

    //删除字符串中的一个字符
    public static void main(String args[]) {
        String str = "this is Java";
        System.out.println(removeCharAt(str, 3));// 删除第3个
        System.out.println(removeCharAt(str, 5));// 删除第5个
    }
    public static String removeCharAt(String s, int pos) {
        return s.substring(0, pos) + s.substring(pos + 1);
    }
}

以上代码实例输出结果为:

thi is Java

在这里插入图片描述

Java 实例 - 字符串替换

如何使用java替换字符串中的字符呢?
以下实例中我们使用 java String 类的 replace 方法来替换字符串中的字符:

package com.example.yan.java字符串;

public class StringReplaceEmp {
 //字符串替换
    public static void main(String args[]){
        String str="Hello World";
        System.out.println( str.replace( 'H','W' ) );
        System.out.println( str.replaceFirst("He", "Wa") );
        System.out.println( str.replaceAll("He", "Ha") );
        System.out.println( str.replaceAll("Hello", "Yanwen") );
    }
}

在这里插入图片描述

Java 实例 - 字符串反转

以下实例演示了如何使用 Java 的反转函数 reverse() 将字符串反转:

public class StringReverseExample {

    public static void main(String[] args){
        String string="nowcoder";
        String reverse = new StringBuffer(string).reverse().toString();
        System.out.println("字符串反转前:"+string);
        System.out.println("字符串反转后:"+reverse);
    }
}

在这里插入图片描述

Java 实例 - 字符串搜索

以下实例使用了 String 类的 indexOf() 方法在字符串中查找子字符串出现的位置,如果存在返回字符串出现的位置(第一位为0),如果不存在返回 -1:

public class SearchStringEmp {

    //字符串搜索
    public static void main(String[] args) {
        String strOrig = "Google Nowcoder Taobao";
        int intIndex = strOrig.indexOf("Nowcoder");
        if(intIndex == - 1){
            System.out.println("没有找到字符串 Nowcoder");
        }else{
            System.out.println("Nowcoder 字符串位置 " + intIndex);
        }
    }
}

在这里插入图片描述

Java 实例 - 字符串分割

以下实例使用了 split(string) 方法通过指定分隔符将字符串分割为数组:
split表达式,其实就是一个正则表达式。* ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即\加以转义。

public class JavaStringSplitEmp {
   public static void main(String args[]){
 
      String str = "www-nowcoder-com";
      String[] temp;
      String delimeter = "-";  // 指定分割字符
      temp = str.split(delimeter); // 分割字符串
      // 普通 for 循环
      for(int i =0; i < temp.length ; i++){
         System.out.println(temp[i]);
         System.out.println("");
      }
 
      System.out.println("------java for each循环输出的方法-----");
      String str1 = "www.nowcoder.com";
      String[] temp1;
      String delimeter1 = "\\.";  // 指定分割字符, . 号需要转义
      temp1 = str1.split(delimeter1); // 分割字符串
      for(String x :  temp1){
         System.out.println(x);
         System.out.println("");
      }
   }
}

在这里插入图片描述

Java 实例 - 字符串分隔(StringTokenizer)

Java 中我们可以使用 StringTokennizer 设置不同分隔符来分隔字符串,默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r)。

以下实例演示了 StringTokennizer 使用空格和等号来分隔字符串:

package com.example.yan.java字符串;

import java.util.StringTokenizer;

// 字符串分隔(StringTokenizer)
public class Main1 {
    public static void main(String[] args) {

        String str = "This is String , split by StringTokenizer, created by nowcoder";
        StringTokenizer st = new StringTokenizer(str);

        System.out.println("----- 通过空格分隔 ------");
        while (st.hasMoreElements()) {
            System.out.println(st.nextElement());
        }

        System.out.println("----- 通过逗号分隔 ------");
        StringTokenizer st2 = new StringTokenizer(str, ",");

        while (st2.hasMoreElements()) {
            System.out.println(st2.nextElement());
        }
    }
}

在这里插入图片描述

Java 实例 - 字符串小写转大写

以下实例使用了 String toUpperCase() 方法将字符串从小写转为大写:

package com.example.yan.java字符串;

public class StringToUpperCaseEmp {
    public static void main(String[] args) {
        String str = "string nowcoder";
        String strUpper = str.toUpperCase();
        String strLower = str.toLowerCase();
        System.out.println("原始字符串: " + str);
        System.out.println("转换为大写: " + strUpper);
        System.out.println("转换为小写: " + strLower);
    }
}

在这里插入图片描述

Java 实例 - 测试两个字符串区域是否相等

以下实例使用了 regionMatches() 方法测试两个字符串区域是否相等:

public class StringRegionMatch{
   public static void main(String[] args){
      String first_str = "Welcome to Microsoft";
      String second_str = "I work with microsoft";
      boolean match1 = first_str.
      regionMatches(11, second_str, 12, 9);
      boolean match2 = first_str.
      regionMatches(true, 11, second_str, 12, 9); //第一个参数 true 表示忽略大小写区别
      System.out.println("区分大小写返回值:" + match1);
      System.out.println("不区分大小写返回值:" + match2);
   }
}

first_str.regionMatches(11, second_str, 12, 9) 表示将 first_str 字符串从第11个字符"M"开始和 second_str 字符串的第12个字符"M"开始逐个比较,共比较 9 对字符,由于字符串区分大小写,所以结果为false。
如果设置第一个参数为 true ,则表示忽略大小写区别,所以返回 true。

以上代码实例输出结果为:
在这里插入图片描述

Java 实例 - 字符串性能比较测试

以下实例演示了通过两种方式创建字符串,并测试其性能:

public class StringComparePerformance{
   public static void main(String[] args){     
      long startTime = System.currentTimeMillis();
      for(int i=0;i<50000;i++){
         String s1 = "hello";
         String s2 = "hello";
      }
      long endTime = System.currentTimeMillis();
      System.out.println("通过 String 关键词创建字符串"
      + " : "+ (endTime - startTime)
      + " 毫秒" );      
      long startTime1 = System.currentTimeMillis();
      for(int i=0;i<50000;i++){
         String s3 = new String("hello");
         String s4 = new String("hello");
      }
      long endTime1 = System.currentTimeMillis();
      System.out.println("通过 String 对象创建字符串"
      + " : " + (endTime1 - startTime1)
      + " 毫秒");
   }
}

在这里插入图片描述

Java 实例 - 字符串优化

以下实例演示了通过 String.intern() 方法来优化字符串:

public class StringOptimization {
    public static void main(String[] args){
        String variables[] = new String[50000];     
        for( int i=0;i <50000;i++){
            variables[i] = "s"+i;
        }
        long startTime0 = System.currentTimeMillis();
        for(int i=0;i<50000;i++){
            variables[i] = "hello";
        }
        long endTime0 = System.currentTimeMillis();
        System.out.println("直接使用字符串: "+ (endTime0 - startTime0)  + " ms" );
        long startTime1 = System.currentTimeMillis();
            for(int i=0;i<50000;i++){
            variables[i] = new String("hello");
        }
        long endTime1 = System.currentTimeMillis();
        System.out.println("使用 new 关键字:" + (endTime1 - startTime1) + " ms");
        long startTime2 = System.currentTimeMillis();
        for(int i=0;i<50000;i++){
            variables[i] = new String("hello");
            variables[i] = variables[i].intern();         
        }
        long endTime2 = System.currentTimeMillis();
        System.out.println("使用字符串对象的 intern() 方法: "
        + (endTime2 - startTime2)
        + " ms");
    }
}

在这里插入图片描述

Java 实例 - 字符串格式化

以下实例演示了通过 format() 方法来格式化字符串,还可以指定地区来格式化:

import java.util.*;
 
public class StringFormat {
    public static void main(String[] args){
        double e = Math.E;
        System.out.format("%f%n", e);
        System.out.format(Locale.CHINA  , "%-10.4f%n%n", e);  //指定本地为中国(CHINA)
    }
}

在这里插入图片描述

Java 实例 - 连接字符串

以下实例演示了通过 “+” 操作符和StringBuffer.append() 方法来连接字符串,并比较其性能:

  public static void main(String[] args){
        long startTime = System.currentTimeMillis();
        for(int i=0;i<5000;i++){
            String result = "This is"
            + "testing the"
            + "difference"+ "between"
            + "String"+ "and"+ "StringBuffer";
        }
        long endTime = System.currentTimeMillis();
        System.out.println("字符串连接"
        + " - 使用 + 操作符 : "
        + (endTime - startTime)+ " ms");
        long startTime1 = System.currentTimeMillis();
        for(int i=0;i<5000;i++){
            StringBuffer result = new StringBuffer();
            result.append("This is");
            result.append("testing the");
            result.append("difference");
            result.append("between");
            result.append("String");
            result.append("and");
            result.append("StringBuffer");
        }
        long endTime1 = System.currentTimeMillis();
        System.out.println("字符串连接"
        + " - 使用 StringBuffer : "
        + (endTime1 - startTime1)+ " ms");
    }

在这里插入图片描述

码云源码地址:gitee.com/yan_wen_cha…

希望可以對大家有幫助;一起學習;