java实现模拟字符串的基本操作

1. equals(判断字符串是否相等)

1.直接赋值:开辟一块堆内存空间,且该字符串对象可以自动保存在对象池 中以供下次使用。
2.构造方法:会开辟两块堆内存空间,其中一块成为垃圾空间,不会自动保存在对象池中,可以使用intern()方法手工入池。
string str = new string(“hello”)

1.1区分大小写

1.//判断字符串是否相等,自己实现
    public static void main(String[] args) {
        String str1 = "HelloWord";
        String str2 = "HelloWord";
        System.out.println(isEqueals(str1,str2));
    }

    private static boolean isEqueals(String str1, String str2) {
        char[] arr1 = str1.toCharArray(); //将字符串转成字符数组
        char[] arr2 = str2.toCharArray(); //将字符串转成字符数组
        while(arr1.length == arr2.length) {
            for(int i = 0; i <= arr1.length; i++) {
                if (arr1[i] != arr2[i]) {
                    return false;
                }
            }
            return true;
        }
        return false;
    }

  2.判断字符串是否相等String类自带类 equals
    public static void main(String[] args) {
        String str1 = "helloword";
        String str2 = "HelloWord";
        System.out.println(str1.equals(str2));
    }

1.2不区分大小写

    public static void main(String[] args) {
        String str1 = "HelloWord";
        String str2 = "helloWord";
        System.out.println(str1.equalsIgnoreCase(str2));
    }

2. compareTo(比较字符串大小)

2.1.自己实现

public static int myCompareTo (String str1,String str2) {
        if(str1 == null && str2 == null) {
            return -100;
        }
        char[] arr1 = str1.toCharArray();
        char[] arr2 = str2.toCharArray();
        for (int i = 0; i < arr1.length && i < arr2.length; i++) {
            if(arr1[i] < arr2[i]){
                return -1;
            } else if (arr1[i] <arr2[i]) {
                return 1;
            } else {
                return 0;
            }
        }
        return 0;
    }

    public static void main(String[] args) {
        String str1 = "helloword";
        String str2 = "halloword";
        System.out.println(myCompareTo(str1,str2));
    }

在这里插入图片描述
2.2String类自带compareTo实现

 public static void main(String[] args) {
        String str1 = "helloword";
        String str2 = "halloword";
        System.out.println(str1.compareTo(str2));
    }

在自己实现的比较类中,遇到空,返回-100,而在String类自己带的compareTo里,遇到空字符会抛出异常。
在这里插入图片描述

3. toCharArray(字符串转换为字符数组)

char[] arr1 = str1.toCharArray(); //将字符串转成字符数组
char[] arr2 = str2.toCharArray();

4. contains(字符串查找)

判断一个子字符串是否存在,contains() ,存在返回 true ,不存在返回false

![ public static void main(String[] args) {
        String str1 = "you are dog";
        String str2 = "I";
        String str3 = "dog";
        System.out.println(str1.contains(str2));
        System.out.println(str1.contains(str3));
    }](https://img-blog.csdnimg.cn/2019111822084165.png)

在这里插入图片描述

5. indexOf

indexOf(String str,int fromIndex) 存在返回该子字符串的首元素的索引,不存在返回-1
第一个参数为子字符串,第二个参数为开始检索的位置

public static void main(String[] args) {
        String str1 = "you are dog";
        String str2 = "I";
        String str3 = "dog";
        System.out.println(str1.indexOf(str2));
        System.out.println(str1.indexOf(str3));
    }

在这里插入图片描述

6. lastIndexOf

如果lastIndexOf 方法中的参数是空字符“ ”,中间没有空格,返回的结果与调研该字符串的length方法的返回结果相同。

public static void main(String[] args) {
        String str1 = "you are dog";
        System.out.println(str1.lastIndexOf(""));
    }

7. replaceAll

replaceAll(String regex,String replacement) 将regex全部替换掉

public static void main(String[] args) {
        String str1 = "you-are-dog";
        System.out.println(str1.replaceAll("-"," "));
    }

在这里插入图片描述

8. replaceFirst

replaceFirst(String regex,String replacement) 只替换掉第一个出现的regex

public static void main(String[] args) {
        String str1 = "you-are-dog";
        System.out.println(str1.replaceFirst("-"," "));
    }

在这里插入图片描述

9. split(字符串拆分)

split(String regex) regex正则表达式 在这里可以理解为,按照哪个字符进行拆分

public static void main(String[] args) {
        String str1 = "name = you & property = dog";
        String[] rel = str1.split("&");
        for(int i = 0; i < rel.length; i++) {
            String[] temp = rel[i].split("=");
            System.out.println(temp[0] +":" +temp[1]);
        }
    }

在这里插入图片描述
split(String regex,int limit) 第二个参数表示,将字符串最多拆分为几部分

public static void main(String[] args) {
        String str1 = "name you property dog";
        String[] rel = str1.split(" ",3);
        for(String x:rel){
            System.out.println(x);
        }
    }

在这里插入图片描述

10. subString

substring(int begainIndex) 从指定的位置开始截取至最后一个元素

public static void main(String[] args) {
        String str1 = "name you property dog";
        System.out.println(str1.substring(9));
    }

在这里插入图片描述
substring(int begainIndex,int endIndex) 截取指定区间的字符串(前闭后开区间)

public static void main(String[] args) {
        String str1 = "name you property dog";
       // System.out.println(str1.substring(9));
        System.out.println(str1.substring(9,17));

    }

在这里插入图片描述

11. trim(删除字符串两端的空格)

public static void main(String[] args) {
        String str1 = " name you property dog ";
        System.out.print("[" + str1 +"]");
        System.out.println();
        System.out.println("[" + str1.trim() + "]");

    }

在这里插入图片描述

12. isEmpty(判空)

public static void main(String[] args) {
        String str1 = " ";
        System.out.println(str1.isEmpty());
        String str2 = "";
        System.out.println(str2.isEmpty());
        String str3 = "null";
        System.out.println(str3.isEmpty());
    }

在这里插入图片描述

13. length(字符串长度)

 public static void main(String[] args) {
        String str1 = "you are dog";
        System.out.println(str1.length());
    }

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验目的: 练习使用Java基本数据类型。使用Java的String类操作字符串和子串。 实验内容: 1.写一个程序提示用户键入某一货币数量(以分为单位),该程序应计算出如何用最少量的1元,50分,10分和1分硬币得到该数目。如195分最少可以用一个1元硬币,1个50分硬币,4个10分硬币和5个1分硬币组成。 注意不要用数组存放不同硬币的值。 2.写一个程序可以对两个字符串进行测试,得知第一个字符串是否包含在第二个字符串中。如字符串”PEN”包含在字符串“INDEPENDENT”中。 可以利用字符串类方法 boolean regionMatches(int toffset, String other, int ooffset, int len) toffset 指从被调用方法的字符串的第几个字符开始测试,如果是0,表明从字符串的首字符开始。other是指使用的另一个字符串。ooffset指从另一个字符串的第几个字符开始。len指要比较几个字符。该方法返回boolean值。 在本题中,ooffset为0,因为我们要测试整个短字符串;len是短字符串的长度;所以应该用 big.regionMatches(index, small, 0, small.length()) 如果big指“independent",small指"pen",则index=2时为假,index=4时为真 (b)改进程序,当第一个字符串包含在第二个字符串中时,显示第一个字符串在第二个字符串中的起始位置。 (c)改进程序,即使当用户输入顺序错误时(第一个是长字符串,第二个是短字符串),能自动在长字符串中搜寻短字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值