Java 中必备的小知识点-字符串系列

1、字符串的比较

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

实例代码如下:

public class StringCompareEmp{
   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

2、查找字符串最后一次出现的位置

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

实例代码如下:

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

3、删除字符串中的一个字符

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

实例代码如下:

public class Main {
   public static void main(String args[]) {
      String str = "this is Java";
      System.out.println(removeCharAt(str, 3));
   }
   public static String removeCharAt(String s, int pos) {
      return s.substring(0, pos) + s.substring(pos + 1);
   }
}

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

删除下标为三的字符

thi is Java

4、字符串替换

如何使用java替换字符串中的字符呢?

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

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

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

1.replace替换所有选中字符

2.replaceFirst替换收个选中字符

3.replaceAll替换所有选中字符

replace和replaceAll的区别在于replaceAll采用正则表达式,replace的一部分代码也引用了一部分的replaceAll的正则表达式代码,所以replaceAll比较快,但是在处理有转义符的时候在不确定他是正则表达式的一部分之前,最好用replace

Wello World
Wallo World
Hallo World

5、字符串反转

以下实例演示了如何使用 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);
   }
}

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

字符串反转前:nowcoder
字符串反转后:redocwon

6、 字符串搜索

以下实例使用了 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);
      }
   }
}

结果:

Nowcoder 字符串位置 7

7、字符串分割

以下实例使用了 split(string) 方法通过指定分隔符将字符串分割为数组:

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

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

split表达式,其实就是一个正则表达式。*  ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即\\加以转义。

www

nowcoder

com

------java for each循环输出的方法-----
www

nowcoder

com

8、字符串分隔(StringTokenizer)

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

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

import java.util.StringTokenizer;

public class Main {
    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());
        }
    }
}

输出结果:

----- 通过空格分隔 ------
This
is
String
,
split
by
StringTokenizer,
created
by
nowcoder
----- 通过逗号分隔 ------
This is String 
 split by StringTokenizer
 created by nowcoder

9、字符串小写转大写

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

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

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

原始字符串: string nowcoder
转换为大写: STRING NOWCODER

10、测试两个字符串区域是否相等

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。

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

区分大小写返回值:false 
不区分大小写返回值:true

今天的小节就到这里,后续会持续,喜欢的可以点个赞,支持一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值