十、JavaSE进阶之API文档及常用类(String)。

简介: API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

一、API概述


什么是API?


API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。


API的使用

1.打开API帮助文档


1.png


2.单击显示出现目录等功能


1.png


3. 查看Java中的包以及包中的类


二、String类



1.概述


String是不变对象,即:字符串对象创建后,表示的字符内容不可变,若改变必定创建新对象


java对于字符串的优化:

字符串常量池,这是在堆内存中开辟的一块空间,用于保存所有使用字面量形式创建的字符串对象,当再次使用该字面量创建新的字符串时,会直接重用而不会再创建新的以达到节省内存开销的目的.

public class Text {
    public static void main(String[] args) {
            String s1="abcdef";
            String s2=new String("xy");
            String s3=s1+s2;
        System.out.println(s1+"\t"+s2+"\t"+s3);
    }
}


1.png

2.常用构造方法:


i.String(char[] value) 分配一个新的 String,它代表了目前包含在字符数组参数字符序列。

ii.String(char[] value, int offset, int count) 分配一个包含字符与字符数组数组参数的新 String。

iii.String(String original) 初始化新创建的对象 String所以它代表相同的字符序列的说法;换句话说,新创建的字符串是一个副本的参数字符串。

iiii.String() 初始化新创建的 String对象,它代表了一个空字符序列。


3.String类常用的方法:


(1)String substring(int start,int end) 截取当前字符串中指定范围内的字符串


   

        String s1 = newString("abcdef");
        String str1=s1.substring(2,5);
        System.out.println(str1);

(2)charAt(int index) 获取当前字符串中指定位置对应的字符


   

        String s1 = new String("abcdef");
        char c1=s1.charAt(2);
        System.out.println(c1);

(3)compareTo(String anotherString) 比较两个字符串的字典。


 

      String s1 = "abcdef";
        String s2="abd";
        int a=s1.compareTo(s2);
        System.out.println(a);

(4)String toUpperCase() String toLowerCase() 将当前字符串中的英文部分转换为全大写或全小写


   

        String str="cvbdfe";
        System.out.println(str.toUpperCase());
        String str2="ACBDFE";
        System.out.println(str2.toLowerCase());

(5)String trim() 去除当前字符串两侧的空白字符


   String str = "  avcd  ";
   System.out.println(str.trim());

(6)int len=str.length(); 获取当前字符串的长度(字符个数)


 

        String str="chsujahsnmje";
        System.out.println(str.length());

(7)boolean startsWith(String str) boolean endsWith(String str) 判断字符串是否是以给定的字符串开始或结尾的


   

        String str="acbvgdem";
        System.out.println(str.startsWith("a"));
        System.out.println(str.endsWith("m"));

(8)equals(Object anObject)字符串相等比较,不忽略大小写


 

        String s1="abcd";
        String s2="abcd";
        System.out.println(s1.equals(s2));

(9)equalsIgnoreCase(String anotherString)字符串相等比较,忽略大小写


 

        String s1="abcd";
        String s2="ABCd";
        System.out.println(s1.equalsIgnoreCase(s2));

(10)indexOf(int ch) 取得指定字符在字符串的位置


   

        String s1="abcd";
        System.out.println(s1.indexOf("b"));

(11)lastIndexOf(int ch) 返回在指定字符的最后一个发生的字符串内的索引。


        String s1="abcdbdchb";
        System.out.println(s1.lastIndexOf("b"));

(12)replaceAll(String regex, String replacement)替换字符串中指定的内容


    String str="我是中国人";
    System.out.println(str.replaceAll("中国","陕西"));

(13)split(String regex) 根据指定的表达式拆分字符串


        String str="abccba";
        String[] s=str.split("c");
        System.out.println(Arrays.toString(s));

(14). valueOf,将其他类型转换成字符串


        System.out.println(String.valueOf(12));
        System.out.println(String.valueOf('v'));
        System.out.println(String.valueOf(123456L));
        System.out.println(String.valueOf(23.45F));
        System.out.println(String.valueOf(123.95));
        System.out.println(String.valueOf(true));


三、 StringBuffer 和 StringBuilder


1.StringBuffer


StringBuffer 称为字符串缓冲区,它的工作原理是:预先申请一块内存,存放字符序列,如果字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序StringBuffer 是可变对象,这个是 String 最大的不同。

如果使用大量的字符串拼接时,使用StringBuffer类。(底层为初始化16个长度的byte数组)


1.常用方法:


//拼接字符串调用append();方法

   

//拼接字符串调用append();方法
        StringBuffer sbStr = new StringBuffer();
        sbStr.append("a");
        sbStr.append("b");
        System.out.println(sbStr);

2.StringBuilder


1.String的优化措施仅照顾重用性,因此频繁修改字符串会带来内存开销大,运行效率差的结果对此,java提供一个专门用于修改字符串的API

2.其内部维护一个可变的char数组,所有的修改都是在这个数组中进行的,因此开销小,性能好,并且其提供了

便于修改字符串的一系列方法,包括了增,删,改,插等基本操作


1.常用方法:

 StringBuilder builder=new StringBuilder();
        //拼接
        builder.append("为了拯救世界!");
        System.out.println(builder);
        //删除
        builder.delete(0,2);
        System.out.println(builder);
        //插入
        builder.insert(0,"我们");
        System.out.println(builder);
        //修改
        builder.replace(2,5,"改变世界");
        System.out.println(builder);
为了拯救世界!
拯救世界!
我们拯救世界!
我们改变世界界!


3. StringBuffer 和 StringBuilder区别


StringBuffer中的方法有synchronized关键字修饰表示在多线程下是安全的StringBuilder线程不安全


相关文章
|
6月前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
63 0
java基础(13)String类
|
3月前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
4月前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
112 2
|
5月前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
97 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
6月前
|
安全 Java
String类-知识回顾①
这篇文章回顾了Java中String类的相关知识点,包括`==`操作符和`equals()`方法的区别、String类对象的不可变性及其好处、String常量池的概念,以及String对象的加法操作。文章通过代码示例详细解释了这些概念,并探讨了使用String常量池时的一些行为。
String类-知识回顾①
|
5月前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
119 2
|
5月前
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
90 4
|
5月前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
48 1
|
5月前
|
存储 安全 Java
【一步一步了解Java系列】:认识String类
【一步一步了解Java系列】:认识String类
50 2
|
5月前
|
安全 C语言 C++
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
72 4

热门文章

最新文章