• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

fairyperfect

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Java中的字符串学习

•字符串替换

三种方法

      1.public String replace()--------旧字符序列换成新字符序列

      2.public String replaceAll()--------将旧字符串或正则表达式内容,替换成新字符串

      3.public String replaceFirst()--------替换一次

将旧字符串替换成新字符串

语法

public String replace(CharSequence target,CharSequence replacement)

target----------旧字符序列

replacement----------替换后的新字符序列

示例

String str = "馒头一文一个";

String replaceStr = str.replace("一","壹");

 

代码运行

public class demo1 {

    public static void main(String[] args) {
         String str="馒头一文一个";
         String replaceStr=str.replace("一","壹");
         System.out.println(replaceStr);
         

    }

}

 

•字母大小写转换

将字符串变成大写

语法

public String toUpperCase()

将字符串变成小写

语法

public String toLowerCase()

示例

String str = "abc DEF";

String strLow = str.toLowerCase();

String strUp = str.toUpperCase();

代码运行

public class demo2 {

    public static void main(String[] args) {
         String str = "abc EDF";
         String toLow = str.toLowerCase();
         String toUp = str.toUpperCase();
         System.out.println(toLow);
         System.out.println(toUp);
    }

}

 

•判断字符串的开始与结尾

判断字符串结尾内容

语法

public boolean endsWith(String suffix)

suffix--------要对比的字符串

示例

String fileName = "HelloWorld.java";

Boolean bool1 = fileName.endsWith(".java");

Boolean bool2 = fileName.endWith(".jpg");

代码运行

public class demo3 {

    public static void main(String[] args) {
     String a = "HelloWorld.java";
     Boolean bool1 = a.endsWith(".java");
     Boolean bool2 = a.endsWith(".jpg");
     System.out.println("bool1 = "+bool1);
     System.out.println("bool2 = "+bool2);
    
    }

}

判断字符串首句内容

语法

public boolean startsWith(String prefix)

prefix--------要对比的字符串

示例

String str = "新华社记者从前往发来报道....";

Boolean bool1 = str.startsWith("新华社");

Boolean bool2 = str.startsWith("新华书店");

代码运行

public class demo4 {

    public static void main(String[] args) {
         String str = ("新华社记者从前往发来报道........");
         Boolean bool1 = str.startsWith("新华社");
         Boolean bool2 = str.startsWith("新华书店");
         System.out.println("bool1 = "+bool1);
         System.out.println("bool2 = "+bool2);

    }

}

 

•判断字符串是否相等

判断用户名是否相等

代码运行

public class demo5 {

    public static void main(String[] args) {
     String name = new String ("tom");
     String dbValue = new String("tom");
     System.out.println(name==dbValue);
    }

}

为什么会不相等?

用new方法创建了两个字符串,这两个字符串对象的值都会保存在内存的栈堆中,首先我们创建了name和dbValue两个引用,用new方法在堆中创建了String的对象实体,并让两个引用指向各自的对象实体,然后这两个对象实体又会分别在栈中创建字符串的自命值内容。name和dbValue始终指向的是两个独立的内存区域,由于==判断的是内存地址,两个内存地址不同的对象比较起来肯定就是false。

如何判断字符串内容是否相等

语法

public boolean equals(String anotherString)

anotherString---------被比较的字符串

示例

String name = new String("tom");

String dbValue = new String("tom");

boolean bool = name.equals(dbValue);

代码运行

public class demo6 {

    public static void main(String[] args) {
       String name = new String("tom");
       String dbValue = new String("tom");
       System.out.println(name.equals(dbValue));
    }

}

忽略大小写比较

语法

public boolean equalslgnoreCase(String anotherString)

anotherString--------被比较的字符串

示例

String str1 = new String("abc");

String str2 = new String("ABC");

Boolean bool = str1.equalslgnoreCase(str2);

代码运行

public class demo7 {

    public static void main(String[] args) {
      String str1 = new String("abc");
      String str2 = new String("ABC");
      System.out.println(str1==str2);
      System.out.println(str1.equals(str2));
      System.out.println(str1.equalsIgnoreCase(str2));

    }

}

特殊情况

如果是用引用字符串常量的方法创建字符串,虽然还是保存在栈堆,保存的方式和以前有所不同。用name引用字符串常量tom的时候,Java虚拟机在栈中的常量区中创建tom这个字符串常量,自动创建一个匿名的字符串对象指向tom,将匿名字符串对象的地址交给name引用,当我们让dbValue也引用字符串常量tom的时候,Java虚拟机会先到栈中的常量区里查找是否有相同的字符串常量,结果发现有相同的常量,就直接把这个常量的匿名对象交给了dbValue引用,这样name和dbValue就是指向同一个匿名对象了,这样用双等号比较的时候,返回结果就是true。

 

posted on 2022-11-19 00:11  小废物的宝藏  阅读(46)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3