java核心技术卷Ⅰ笔记(3)

对之前学习的Java基础进行补充

由于前两天去参加全媒体大赛耽误了补充进度,今天继续

  • 码点转换成字符串
    当我们获取到一个码点的时候,我们也可以通过String构造函数来创建一个字符串
String temp = "你好";
// 遍历“你好”的码点
int[] codePoints = temp.codePoints().toArray();
String string = new String(codePoints, 0, codePoints.length)
// string = "你好";
  • String API
    对于String来说,除非对底层的代码单元感兴趣才调用之前有关码点的方法! 其实日常我们使用一些常用,方便的就行
  • ① int compareTo(String other)
    按照字典顺序,如果字符串位于 other 之前, 返回一个负数;如果字符串位于 other 之 后,返回一个正数;如果两个字符串相等,返回 0。
/**
 * 源码:其实就是按照两个字符数组中
 * 最短数组的和另一个数组比较
 * 如果短串与长串的首部相同(startWidth)那么返回长度差
 * 否侧返回不同字母的Ascii差
 */
public int compareTo(String anotherString) {
        int len1 = value.length;
        int len2 = anotherString.value.length;
        int lim = Math.min(len1, len2);
        char v1[] = value;
        char v2[] = anotherString.value;

        int k = 0;
        while (k < lim) {
            char c1 = v1[k];
            char c2 = v2[k];
            if (c1 != c2) {
                return c1 - c2;
            }
            k++;
        }
        return len1 - len2;
    }

验证

System.out.println("a".compareTo("bcd"));
// -1 (短串是a和长传bcd不满足startWidth则返回'b'-'a'的值)
System.out.println("a".compareTo("aaa"));
// -2 (短串是a和长传aaa满足startWidth则返回a.length - aaa.length的值)
  • boolean equals(Object anObject)
    如果字符串与 other 相等, 返回 true。
/**
 * 源码:其实就是按照两个字符数组中
 * 查看源码发现原理是先判断两个对象的引用是否一致,若是侧返回true
 * 否则再判断anObject是不是String类型if (anObject instanceof String)
 * 若是再判断两串的长度(不相等返回false),最后判断对应位置的字符是否全部相等
 */
public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

不必演示代码了
其他常用api如下:

  • boolean equalsIgnoreCase(String other )
    如果字符串与 other 相等 ( 忽略大小写) 返回 tme。
  • boolean startsWith(String prefix )
    如果字符串以 suffix 开头 则返回 true。
  • boolean endsWith(String suffix )
    如果字符串以 suffix 结尾 则返回 true。
  • int indexOf(String str)
  • int indexOf(String str, int fromlndex )
  • int indexOf(int cp)
  • int indexOf(int cp, int fromlndex )
    返回与字符串 str 或代码点 cp 匹配的第一个子串的开始位置。这个位置从索引 0 或
    fromlndex 开始计算。 如果在原始串中不存在 str,
    返回 -1。
  • int lastIndexOf(String str)
  • Int lastIndexOf(String str, int fromlndex )
  • int lastindexOf(int cp)
  • int lastindexOf(int cp, int fromlndex )
    返回与字符串 str 或代码点 cp 匹配的最后一个子串的开始位置。 这个位置从原始串尾端或 fromlndex 开始计算
  • String replace( CharSequence oldString,CharSequence newString)
    返回一个新字符串。这个字符串用 newString 代替原始字符串中所有的 oldString。可以用 StringStringBuilder 对象作为 CharSequence 参数。
  • String toLowerCase( )
    全部替换成大写字母
  • String toUpperCase( )
    全部替换成小写字母
  • String trim( )
    返回一个新字符串。这个字符串将删除了原始字符串头部尾部的空格
  • String subString()
    字符串截取[a,b)

今天就先到这!虽然不多 但要坚持 晚安

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值