java8类库简单了解(四)String

java核心类库 Java 核心类库中常用类和工具类的实现和实践。 阅读详情

常用方法:

1,字符串中包含的字符数,也就是字符串的长度:int length()

2,根据位置获取位置上的某个字符:char charAt(int index)

3,根据字符获取该字符在字符串中的位置: int indexof(String str);int indexof(String str,int fromIndex)

4,字符串中是否包含某一个子串:boolean contains(str)

5,字符串中是否有内容:boolean isEmpty()

6,字符串是否是以指定内容开头:boolean startWith(str)

7,字符串是否是以指定内容结尾:boolean endWith(str)

8,判断字符串的内容是否相同:boolean equals(str)

9,判断内容是否相同,并忽略大小写:boolean equalsIgnoreCsae()

10, 将字符数组转成字符串:static String copyValue(char[]); static String valueof(char[]);

11,将字符串转成字符数组:char[]  toCharArray()

12,将字符串转换成字节数组:byte[] getBytes();

13,将基本数据类型转成字符串:static String valueof(int) ...

14,替换字符串:String replace(oldchar,newchar)

15,把该字符切割,然后将每一部分组装成数组:String[] split(regex);

16,截取子串:String substring(begin);String substring(begin,end);         注:包含头,不包含尾

17,将字符串转成大写或者小写 :String toUppercase(); String toLowercase();

18,将字符串两端多余的空格去除:String trim();

部分源码如下:

/**
 * @author  Lee Boynton
 * @author  Arthur van Hoff
 * @author  Martin Buchholz
 * @author  Ulf Zibis
 * @since   JDK1.0
 */

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char value[];

    /** Cache the hash code for the string */
    private int hash; // Default to 0

    /** use serialVersionUID from JDK 1.0.2 for interoperability */
    private static final long serialVersionUID = -6849794470754667710L;

    private static final ObjectStreamField[] serialPersistentFields =
        new ObjectStreamField[0];

    public String() {
        this.value = "".value;
    }
       
    /**
     * 字符串的长度
     */
    public int length() {
        return value.length;
    }

    /**
     * 判断长度是否为0
     *
     * @since 1.6
     */
    public boolean isEmpty() {
        return value.length == 0;
    }

    /**
     * 获取位置上的某个字符,取数组值
     */
    public char charAt(int index) {
        if ((index < 0) || (index >= value.length)) {
            throw new StringIndexOutOfBoundsException(index);
        }
        return value[index];
    }


    /**
     * 将此 String编码为字节序列,将结果存储到新的字节数组中。
     *
     * @since  JDK1.1
     */
    public byte[] getBytes(String charsetName)
            throws UnsupportedEncodingException {
        if (charsetName == null) throw new NullPointerException();
        return StringCoding.encode(charsetName, value, 0, value.length);
    }

    /**
     * @since  1.6
     */
    public byte[] getBytes(Charset charset) {
        if (charset == null) throw new NullPointerException();
        return StringCoding.encode(charset, value, 0, value.length);
    }

    /**
     * @since      JDK1.1
     */
    public byte[] getBytes() {
        return StringCoding.encode(value, 0, value.length);
    }

    /**
     * 判断地址是否一样,一样则为同一个对象,为true;或者判断是否是同一个类或子类,再比较每一个字符,都相同则为true
     */
    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;
    }

    /**
     * @since  1.4
     */
    public boolean contentEquals(StringBuffer sb) {
        return contentEquals((CharSequence)sb);
    }

    private boolean nonSyncContentEquals(AbstractStringBuilder sb) {
        char v1[] = value;
        char v2[] = sb.getValue();
        int n = v1.length;
        if (n != sb.length()) {
            return false;
        }
        for (int i = 0; i < n; i++) {
            if (v1[i] != v2[i]) {
                return false;
            }
        }
        return true;
    }

    /**
     * @since  1.5
     */
    public boolean contentEquals(CharSequence cs) {
        // Argument is a StringBuffer, StringBuilder
        if (cs instanceof AbstractStringBuilder) {
            if (cs instanceof StringBuffer) {
                synchronized(cs) {
                   return nonSyncContentEquals((AbstractStringBuilder)cs);
                }
            } else {
                return nonSyncContentEquals((AbstractStringBuilder)cs);
            }
        }
        // Argument is a String
        if (cs instanceof String) {
            return equals(cs);
        }
        // Argument is a generic CharSequence
        char v1[] = value;
        int n = v1.length;
        if (n != cs.length()) {
            return false;
        }
        for (int i = 0; i < n; i++) {
            if (v1[i] != cs.charAt(i)) {
                return false;
            }
        }
        return true;
    }

    /**
     * 比较时忽略大小写
     */
    public boolean equalsIgnoreCase(String anotherString) {
        return (this == anotherString) ? true
                : (anotherString != null)
                && (anotherString.value.length == value.length)
                && regionMatches(true, 0, anotherString, 0, value.length);
    }
	
    public boolean regionMatches(boolean ignoreCase, int toffset,
            String other, int ooffset, int len) {
        char ta[] = value;
        int to = toffset;
        char pa[] = other.value;
        int po = ooffset;
        // Note: toffset, ooffset, or len might be near -1>>>1.
        if ((ooffset < 0) || (toffset < 0)
                || (toffset > (long)value.length - len)
                || (ooffset > (long)other.value.length - len)) {
            return false;
        }
        while (len-- > 0) {
            char c1 = ta[to++];
            char c2 = pa[po++];
            if (c1 == c2) {
                continue;
            }
            if (ignoreCase) {
                // If characters don't match but case may be ignored,
                // try converting both characters to uppercase.
                // If the results match, then the comparison scan should
                // continue.
                char u1 = Character.toUpperCase(c1);
                char u2 = Character.toUpperCase(c2);
                if (u1 == u2) {
                    continue;
                }
                // Unfortunately, conversion to uppercase does not work properly
                // for the Georgian alphabet, which has strange rules about case
                // conversion.  So we need to make one last check before
                // exiting.
                if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) {
                    continue;
                }
            }
            return false;
        }
        return true;
    }

    /**
     * 
     */
    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;
    }

    /**
     * 
     * @since   1.2
     */
    public static final Comparator<String> CASE_INSENSITIVE_ORDER
                                         = new CaseInsensitiveComparator();
    private static class CaseInsensitiveComparator
            implements Comparator<String>, java.io.Serializable {
        // use serialVersionUID from JDK 1.2.2 for interoperability
        private static final long serialVersionUID = 8575799808933029326L;

        public int compare(String s1, String s2) {
            int n1 = s1.length();
            int n2 = s2.length();
            int min = Math.min(n1, n2);
            for (int i = 0; i < min; i++) {
                char c1 = s1.charAt(i);
                char c2 = s2.charAt(i);
                if (c1 != c2) {
                    c1 = Character.toUpperCase(c1);
                    c2 = Character.toUpperCase(c2);
                    if (c1 != c2) {
                        c1 = Character.toLowerCase(c1);
                        c2 = Character.toLowerCase(c2);
                        if (c1 != c2) {
                            // No overflow because of numeric promotion
                            return c1 - c2;
                        }
                    }
                }
            }
            return n1 - n2;
        }

        /** Replaces the de-serialized object. */
        private Object readResolve() { return CASE_INSENSITIVE_ORDER; }
    }

    /**
     * 
     * @since   1.2
     */
    public int compareToIgnoreCase(String str) {
        return CASE_INSENSITIVE_ORDER.compare(this, str);
    }

    /**
     * 区域匹配
     */
    public boolean regionMatches(int toffset, String other, int ooffset,
            int len) {
        char ta[] = value;
        int to = toffset;
        char pa[] = other.value;
        int po = ooffset;
        // Note: toffset, ooffset, or len might be near -1>>>1.
        if ((ooffset < 0) || (toffset < 0)
                || (toffset > (long)value.length - len)
                || (ooffset > (long)other.value.length - len)) {
            return false;
        }
        while (len-- > 0) {
            if (ta[to++] != pa[po++]) {
                return false;
            }
        }
        return true;
    }

    /**
     * 在指定索引处开始的,此字符串的子字符串,是否以指定的前缀开头。
     */
    public boolean startsWith(String prefix, int toffset) {
        char ta[] = value;
        int to = toffset;
        char pa[] = prefix.value;
        int po = 0;
        int pc = prefix.value.length;
        // Note: toffset might be near -1>>>1.
        if ((toffset < 0) || (toffset > value.length - pc)) {
            return false;
        }
        while (--pc >= 0) {
            if (ta[to++] != pa[po++]) {
                return false;
            }
        }
        return true;
    }

    /**
     * 此字符串是否以指定的前缀开头。
     * @since   1. 0
     */
    public boolean startsWith(String prefix) {
        return startsWith(prefix, 0);
    }

    public boolean endsWith(String suffix) {
        return startsWith(suffix, value.length - suffix.value.length);
    }

    /**
     * 返回此字符串的哈希码。
     */
    public int hashCode() {
        int h = hash;
        if (h == 0 && value.length > 0) {
            char val[] = value;

            for (int i = 0; i < value.length; i++) {
                h = 31 * h + val[i];
            }
            hash = h;
        }
        return h;
    }

	/**
	 * 返回指定子字符串第一次出现的字符串内的索引。
	 */
    public int indexOf(String str) {
        return indexOf(str, 0);
    }

    public int indexOf(String str, int fromIndex) {
        return indexOf(value, 0, value.length,
                str.value, 0, str.value.length, fromIndex);
    }

    public int lastIndexOf(String str) {
        return lastIndexOf(str, value.length);
    }

    public int lastIndexOf(String str, int fromIndex) {
        return lastIndexOf(value, 0, value.length,
                str.value, 0, str.value.length, fromIndex);
    }

    /**
     * 返回一个字符串,该字符串是此字符串的子字符串,重新new对象。
     */
    public String substring(int beginIndex) {
        if (beginIndex < 0) {
            throw new StringIndexOutOfBoundsException(beginIndex);
        }
        int subLen = value.length - beginIndex;
        if (subLen < 0) {
            throw new StringIndexOutOfBoundsException(subLen);
        }
        return (beginIndex == 0) ? this : new String(value, beginIndex, subLen);
    }

    public String substring(int beginIndex, int endIndex) {
        if (beginIndex < 0) {
            throw new StringIndexOutOfBoundsException(beginIndex);
        }
        if (endIndex > value.length) {
            throw new StringIndexOutOfBoundsException(endIndex);
        }
        int subLen = endIndex - beginIndex;
        if (subLen < 0) {
            throw new StringIndexOutOfBoundsException(subLen);
        }
        return ((beginIndex == 0) && (endIndex == value.length)) ? this
                : new String(value, beginIndex, subLen);
    }

    /**
     * 例如"abc".replace("a","b");将a替换为b,返回bbc
     */
    public String replace(char oldChar, char newChar) {
        if (oldChar != newChar) {
            int len = value.length;
            int i = -1;
            char[] val = value; /* avoid getfield opcode */

            while (++i < len) {
                if (val[i] == oldChar) {
                    break;
                }
            }
            if (i < len) {
                char buf[] = new char[len];
                for (int j = 0; j < i; j++) {
                    buf[j] = val[j];
                }
                while (i < len) {
                    char c = val[i];
                    buf[i] = (c == oldChar) ? newChar : c;
                    i++;
                }
                return new String(buf, true);
            }
        }
        return this;
    }

    /**
     * 这个字符串是否匹配,给定的 regular expression(正则表达式)。
     * @since 1.4
     * @spec JSR-51
     */
    public boolean matches(String regex) {
        return Pattern.matches(regex, this);
    }

    /**
     * 当且仅当此字符串包含指定的char值序列时才返回true。例如boolean flag = "abcd".contains("d");返回true
     * @since 1.5
     */
    public boolean contains(CharSequence s) {
        return indexOf(s.toString()) > -1;
    }



    /**
     * 
     * @since 1.4
     * @spec JSR-51
     */
    public String replaceAll(String regex, String replacement) {
        return Pattern.compile(regex).matcher(this).replaceAll(replacement);
    }

    /**
     * 将此字符串分割为给定的 regular expression的匹配。
     * @since 1.4
     * @spec JSR-51
     */
    public String[] split(String regex, int limit) {
        /* fastpath if the regex is a
         (1)one-char String and this character is not one of the
            RegEx's meta characters ".$|()[{^?*+\\", or
         (2)two-char String and the first char is the backslash and
            the second is not the ascii digit or ascii letter.
         */
        char ch = 0;
        if (((regex.value.length == 1 &&
             ".$|()[{^?*+\\".indexOf(ch = regex.charAt(0)) == -1) ||
             (regex.length() == 2 &&
              regex.charAt(0) == '\\' &&
              (((ch = regex.charAt(1))-'0')|('9'-ch)) < 0 &&
              ((ch-'a')|('z'-ch)) < 0 &&
              ((ch-'A')|('Z'-ch)) < 0)) &&
            (ch < Character.MIN_HIGH_SURROGATE ||
             ch > Character.MAX_LOW_SURROGATE))
        {
            int off = 0;
            int next = 0;
            boolean limited = limit > 0;
            ArrayList<String> list = new ArrayList<>();
            while ((next = indexOf(ch, off)) != -1) {
                if (!limited || list.size() < limit - 1) {
                    list.add(substring(off, next));
                    off = next + 1;
                } else {    // last one
                    //assert (list.size() == limit - 1);
                    list.add(substring(off, value.length));
                    off = value.length;
                    break;
                }
            }
            // If no match was found, return this
            if (off == 0)
                return new String[]{this};

            // Add remaining segment
            if (!limited || list.size() < limit)
                list.add(substring(off, value.length));

            // Construct result
            int resultSize = list.size();
            if (limit == 0) {
                while (resultSize > 0 && list.get(resultSize - 1).length() == 0) {
                    resultSize--;
                }
            }
            String[] result = new String[resultSize];
            return list.subList(0, resultSize).toArray(result);
        }
        return Pattern.compile(regex).split(this, limit);
    }

    /**
     * @since 1.4
     * @spec JSR-51
     */
    public String[] split(String regex) {
        return split(regex, 0);
    }

    /**
	 * 例如:
     * String message = String.join("-", "Java", "is", "cool");
     * message returned is: "Java-is-cool"
     * @see java.util.StringJoiner
     * @since 1.8
     */
    public static String join(CharSequence delimiter, CharSequence... elements) {
        Objects.requireNonNull(delimiter);
        Objects.requireNonNull(elements);
        // Number of elements not likely worth Arrays.stream overhead.
        StringJoiner joiner = new StringJoiner(delimiter);
        for (CharSequence cs: elements) {
            joiner.add(cs);
        }
        return joiner.toString();
    }

    /**
     * @since 1.8
     */
    public static String join(CharSequence delimiter,
            Iterable<? extends CharSequence> elements) {
        Objects.requireNonNull(delimiter);
        Objects.requireNonNull(elements);
        StringJoiner joiner = new StringJoiner(delimiter);
        for (CharSequence cs: elements) {
            joiner.add(cs);
        }
        return joiner.toString();
    }

    /**
     * 将所有在此字符 String使用默认语言环境的规则,以小写。
     * @since   1.1
     */
    public String toLowerCase() {
        return toLowerCase(Locale.getDefault());
    }

    /**
     * 转大写
     * @since   1.1
     */
    public String toUpperCase() {
        return toUpperCase(Locale.getDefault());
    }

    /**
	 * 去空格
     * 返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。
     */
    public String trim() {
        int len = value.length;
        int st = 0;
        char[] val = value;    /* avoid getfield opcode */

        while ((st < len) && (val[st] <= ' ')) {
            st++;
        }
        while ((st < len) && (val[len - 1] <= ' ')) {
            len--;
        }
        return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
    }

    /**
     * This object (which is already a string!) is itself returned.
     *
     * @return  the string itself.
     */
    public String toString() {
        return this;
    }

    /**
     * 将此字符串转换为新的字符数组。
     */
    public char[] toCharArray() {
        // Cannot use Arrays.copyOf because of class initialization order issues
        char result[] = new char[value.length];
        System.arraycopy(value, 0, result, 0, value.length);
        return result;
    }

    /**
     * 
     * @since  1.5
     */
    public static String format(String format, Object... args) {
        return new Formatter().format(format, args).toString();
    }

    /**
     * 返回对应参数的字符串形式。
     */
    public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();
    }

    public static String valueOf(char data[]) {
        return new String(data);
    }

    public static String valueOf(char data[], int offset, int count) {
        return new String(data, offset, count);
    }

    /**
     * 相当于 valueOf(char[], int, int) 。
     */
    public static String copyValueOf(char data[], int offset, int count) {
        return new String(data, offset, count);
    }

    public static String copyValueOf(char data[]) {
        return new String(data);
    }

    public static String valueOf(boolean b) {
        return b ? "true" : "false";
    }

    public static String valueOf(char c) {
        char data[] = {c};
        return new String(data, true);
    }

    public static String valueOf(int i) {
        return Integer.toString(i);
    }

    public static String valueOf(long l) {
        return Long.toString(l);
    }

    public static String valueOf(float f) {
        return Float.toString(f);
    }

    public static String valueOf(double d) {
        return Double.toString(d);
    }

    /**
     * 调用这个方法之后把字符串对象加入常量池中
	   如:
	    String str1 = "aaa";
        String str2 = "bbb";
        String str3 = "aaabbb";
        String str4 = str1 + str2;
        String str5 = "aaa" + "bbb";
        System.out.println(str3 == str4); // false
        System.out.println(str3 == str4.intern()); // true
        System.out.println(str3 == str5);// true
		
		1.直接定义字符串变量的时候赋值,如果表达式右边只有字符串常量,那么就是把变量存放在常量池里面。
    2.new出来的字符串是存放在堆里面。
    3.对字符串进行拼接操作,也就是做"+"运算的时候,分2中情况:
      i.表达式右边是纯字符串常量,那么存放在栈里面。
      ii.表达式右边如果存在字符串引用,也就是字符串对象的句柄,那么就存放在堆里面。

		str1、str2、str3、str5都是存在于常量池,str4由于表达式右半边有引用类型,所以str4存在于堆内存,而str5表达式右边没有引用类型,是纯字符串常量,就存放在了常量池里面。
     */
    public native String intern();
}




PaddleOCR实战:从零开始训练自己的OCR模型(附完整代码与数据集处理技巧) 本文提供了一份详尽的PaddleOCR实战指南,手把手教你从零开始训练专属的OCR模型。内容涵盖高质量训练数据的准备与标注技巧、预训练模型的选型对比、关键参数调优策略,并附有完整的代码示例。通过遵循本文的步骤,开发者可以高效构建并优化贴合自身业务场景的高精度OCR模型,实现从数据到部署的全流程掌握。 阅读详情

相关推荐

从永恒之蓝看内网安全:企业如何用Nmap+MSF快速检测445端口风险

本文探讨了企业如何利用Nmap和Metasploit快速检测445端口风险,防范永恒之蓝(MS17-010)漏洞攻击。通过分阶段检测流程和自动化工具组合,企业可高效识别内网风险主机,并实施紧急隔离与长效防护策略,提升整体网络安全防护能力。

weixin_30772105的博客 599

深入学习java源码之StringCoding.decode()与StringCoding.encode()

深入学习java源码之StringCoding.decode()与 StringCoding.encode() static关键字的用途 static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。 简而言之,一句话来描述就是:   方便在...

悦分享 5116

深度学习(Deep Learning, DL)简介

深度学习(Deep Learning, DL)是机器学习的一个子领域,主要使用多层神经网络来处理复杂的数据和任务。深度学习通过模拟人脑的神经网络结构,能够自动提取特征并进行高效的模式识别和预测。

qq_28791753的博客 1万+

String源码详解二

String源码详解二 getBytes() 这里有三个重载的方法,String和Charset都是传编码方式 这个方法的作用就是获取字符串特定编码方式的字节数组 public byte[] getBytes() { return StringCoding.encode(coder(), value); } 通过下面代码可以知道,如果不传编码方式,那么就获取系统...

weixin_44130081的博客 273

uniapp - 超详细 H5 网页利用 uni.downloadFile 下载 URL 文件流并调用浏览器下载功能效果,前台通过请求后端接口获取文件并下载保存到本地(支持电脑PC与手机移动端H5)

uniapph5网页下载文件,uniapp网站下载文件流,uniapp的移动端h5实现接口url文件下载,uniapph5页面在浏览器中如何下载指定url文件流文件并保存到本地,uniapp移动端h5调用后端接口保存文件到本地,uniapph5通过下载后获得临时路径怎么让浏览器弹出下载,uniapp怎么请求接口下载到文件,得到Blob临时路径对象后如何下载到本地,浏览器怎么下载blob对象,uniapp二进制文件流下载,uniapph5中的文件流下载和指定的url下载详细教程,uniappapp移

🏆 前端领域优质创作者 1万+

VisionPro 机器视觉案例 之 彩色保险丝个数统计

CogColorSegmenterTool CogColorMatchTool

机器视觉李小白的博客 2353

String 源码浅析(一)

前言 相信作为 JAVAER,平时编码时使用最多的必然是 String 字符串,而相信应该存在不少人对于 String 的 api 很熟悉了,但没有看过其源码实现,其实我个人觉得对于 api 的使用,最开始的阶段是看其官方文档,而随着开发经验的积累,应当尝试去看源码实现,这对自身能力的提升是至关重要的。当你理解了源码之后,后面对于 api 的使用也会更加得心应手! 备注:以下记录基于 jdk8 ...

li123128的博客 602

ResNet改进(7):添加 SK注意力机制

实现 SK 注意力机制。

2401_82355416的博客 732

String源码阅读(二)

本篇主要介绍String的部分方法。如没有阅读过一部分,请先阅读第一部分。 //返回value数组的长度,通俗易懂。 public int length() { return value.length; } //判断value数组的长度 public boolean isEmpty() { return value.length == 0; }...

Livingdd的博客 297

基于Playwright与反反爬技术的BOSS直聘数据爬取实战

本文将详细介绍如何使用Python最新技术栈(Playwright+Asyncio)构建一个高效、稳定的BOSS直聘数据爬虫系统。文章包含完整的技术选型分析、反爬机制破解方案、分布式爬虫架构设计以及数据处理存储方案,提供可直接运行的代码示例,并探讨爬虫开发中的法律与伦理问题。

2201_76125261的博客 1466

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java中文乱码解决之道(五)—–java是如何编码解码的

原文出处:http://cmsblogs.com/?p=1491 在上篇博客中LZ阐述了java各个渠道转码的过程,阐述了java在运行过程中那些步骤在进行转码,在这些转码过程中如果一处出现问题就很有可能会产生乱码!下面LZ就讲述java在转码过程中是如何来进行编码和解码操作的。 编码&amp;解码 在上篇博客中LZ阐述了三个渠道的编码转换过程,下面LZ将结束java在那些场合需要进行编码和...

weixin_33953249的博客 340

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java String 对象,你真的了解了吗?

String 对象的实现 String对象是 Java 中使用最频繁的对象之一,所以 Java 公司也在不断的对String对象的实现进行优化,以便提升String对象的性能,看下面这张图,一起了解一下String对象的优化过程。 1. 在 Java6 以及之前的版本中 String对象是对 char 数组进行了封装实现的对象,主要有四个成员变量: char 数组、偏移量 offset、字符数量...

平头哥的技术博文 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JAVA-核心类库

Java核心类库是指Java语言提供的一组基础类和接口,用于处理常见的任务和操作,包括字符串处理、集合操作、IO操作、多线程等。熟练掌握Java核心类库的使用,可以提高开发效率和编写高质量的Java应用程序的能力。

分享,学习,专注,努力,向上。 2138

Java 常用类库及String类详解

Java常用类库不要求有很多思想上的东西,要求对其有很熟练的使用能力。常用类库就好比在生活中手艺人手中的工具,作为一个Java程序员我们也必须熟练掌握这些工具。 导航一、java.util.Objects二、java.lang.Math三、java.util.Arrays四、java.math.BigDecimal五、java.util.Date六、java.text.DateFormatjava.text.SimpleDateFormat七、java.util.Calendar八、java.lang.Sy

xxq010516的博客 526

Java——常用类库

Collections接口是集合层次框架的跟接口,是存储单一对象的集合(即每个位置保存的是单一的对象)。1、Collections接口有两个直接扩展的子类:List和SetList接口里存放的集合元素是有顺序的、可以重复的,该接口常用的实现类主要有ArrayList、Vector(顺序储存,支持元素的快速访问,但是插入、删除速度慢),LinkedList(链式储存,元素插入、删除性能好);

2302_79062950的博客 3429

java的类库介绍

Java 提供了一个丰富的标准库,其中包含了许多基础类库来帮助开发者进行常见任务。这些类库可以处理数据结构、输入输出、网络编程、日期时间、字符串操作等多种功能。Java 的基础类库提供了各种工具和功能,极大地简化了开发者的工作,包括数据结构、输入输出、日期处理和网络通信等阅读~~ ,你的支持,是我创作的最大动力!~~

weixin_50055999的博客 932

javaSE——Java基础类库

一、Java基础类库 Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中。 1、Java.lang包 Java最常用的包都属于该包,程序不需要注入此包,就可以使用该包中的类,利用这些类可以设计最基本的Java程序。    (1)、String类,提供了字符串连接、比较、字符定位、字符串打印等处理方法。    (2)、StringBuffer类,提供字符串进一步的处理方法,包括子字符串处理、字符添加插入、字符替换

DF10f-0001A 1129

【Java程序设计】Java基础类库简介

Java基础类库简介 一、Java基础类库介绍 二、语言包(java.lang) (1)数据类型包裹类 (2)常量字符串类String (3)变量字符串类StringBuffer (4)数学类(Math) (5)系统和运行时类(System、Runtime) (6)类操作类(Class、ClassLoader) 三、实用包(java.util) (1)Date类 (2)Calendar类 (3)GregorianCalendar类 (4)StringTokenizer类 四、文本包(java.text)

PKM of bk 1087

Java核心类库

Java核心类库

qq_50048558的博客 4325

java 类库_Java基础类库简介

Java基础类库简介一、常用的基础类库:11个jar(Java Archive,Java归档)包作为java语言使用者,我们可以感受到java语言带来的优势(平台无关、面向对象、多线程、高效易扩展等),而且它有很多已经实现的类库可以供我们直接使用,这些类库都是以jar包的形式提供的,也可以成为javaAPI,它为编程者实现了各种常用操作的方法,为程序员编写java程序代码带来了许多方便。作为初学...

weixin_33045071的博客 702

Java基础(四) Object 数组转成 String 数组

Java有个问题就是toArray()方法是Object[],所以总结了几种Object数组转成String 数组的方法: 1、System.arraycopy 把一个数组中某一段字节数据放到另一个数组中 //src:源数组;srcPos:源数组要复制的起始位置;dest:目的数组;destPos:目的数组放置的起始位置;length:复制的长度. public sta...

JUN_LLLL的博客 2万+

Java常用类库之String

Java常用类库之String 概述 在学习Java时,我们知道Java的基本数据类型有整型的int,byte,short,long,字符型的char,布尔型的Boolean和浮点型的float、double,String虽然不是基本数据类型,但是我们在使用Java的时候,经常会用到String字符串,String是Java中一个重要的常用类库,任何一个字符串都是String类的实例,String类的对象。 JDK解释: JDK中对String的介绍中,我们可以发现有这么一句话(如图红色部分) 为什..

weixin_44646497的博客 401

Java常用类库的介绍和使用(例如String、Math、Scanner等)

Java是一种非常流行的编程语言,它提供了大量的类库来帮助程序员开发高效、可靠的程序。这些类库是Java的核心组成部分,也是开发Java应用程序所必需的。本文将介绍Java中一些常用的类库及其使用方法,包括String、Math、Scanner等。String类Java中的String类用于表示字符串。它提供了许多有用的方法,例如:length():返回字符串的长度。charAt(int inde...

陌然的博客 408

java8中String转为Date

给大家整理了一些有关【字符串,Java】的项目学习资料(附讲解~~):https://edu.51cto.com/course/35079.htmlhttps://edu.51cto.com/course/35714.htmlJava 8中将String转换为Date的指南 作为一名经验丰富的开发者,我经常被问到如何将...

weixin_34483980的博客 646

java基础类库

https://blog.csdn.net/qq_41819893/article/details/121068788java以基础类库JFC的形式为程序员提供变成接口API,类库中的类按照用途归属于不同的包中。java最常用的包都属于该包,程序不需要注入此包,就可以使用该包中的类,利用这些类可以设计最基本的JAVA程序该包的类提供数据流方式的系统输入输出控制、文件和对象的读写串行化处理,比较常用的类包括:BufferInputStream、BufferOutputStream、BufferedReader

月阴荒的博客 1688
上一篇: java基础记录·杂(while、split、位运算符)
下一篇: java基础·杂(http请求方式)
gcc_front
博客等级 码龄9年 16粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值