zoukankan      html  css  js  c++  java
  • Day01:API文档 / 字符串基本操作

    JDK API

     什么是JDK API?

    JDK中包含大量的API类库,所谓AP就是一些写好的,可提供直接调用的功能(在Java语言中,这些功能以类的形式封装)。

    JDK API包含的类库功能强大,经常使用的有:字符串处理,集合操作,文件操作,输入输出操作,网络操作,多线程等。

    JDK包结构

    为了便于使用和维护,JDK类库按照包结构划分,不同功能的类划分在不同的包中;

    经常使用的包如下图:

    功能
    java.lang Java程序的基础类,如字符串、多线程等,该包中的类使用的频率非常高,不需要import,可以直接使用
    java.util 常用工具类,如集合、随机数产生器、日历、时钟等
    java.io 文件操作、输入/输出操作
    java.net 网络操作
    java.math 数学运算相关操作
    java.security 安全相关操作
    java.sql 数据库访问
    java.text 处理文字、日期、数字、信息的格式

    JAVA文档注释

    什么是文档注释?

    java只有3种注释方式,前两种分别是//和/* */,第三种被称作为说明注释,它以/** 开始,以*/结尾。

    怎么使用注释文档?

    加在类和方法的开头,可以轻松的将此注释转换成HTML文档说明;学习者和程序员主要通过文档理解API的功能。

    说明注释允许你在程序中嵌入关于程序的信息。你可以使用javadoc工具软件来生成信息,并输入到HTML文件中,说明注释,使你的更加方便的记录你的程序的信息。

    javadoc 标签

    javadoc工具软件识别以下标签:

    标签描述示例
    @author 标识一个类的作者 @author description
    @deprecated 指名一个过期的类或成员 @deprecated description
    {@docRoot} 指明当前文档根目录的路径 Directory Path
    @exception 标志一个类抛出的异常 @exception exception-name explanation
    {@inheritDoc} 从直接父类继承的注释 Inherits a comment from the immediate surperclass.
    {@link} 插入一个到另一个主题的链接 {@link name text}
    {@linkplain} 插入一个到另一个主题的链接,但是该链接显示纯文本字体 Inserts an in-line link to another topic.
    @param 说明一个方法的参数 @param parameter-name explanation
    @return 说明返回值类型 @return explanation
    @see 指定一个到另一个主题的链接 @see anchor
    @serial 说明一个序列化属性 @serial description
    @serialData 说明通过writeObject( ) 和 writeExternal( )方法写的数据 @serialData description
    @serialField 说明一个ObjectStreamField组件 @serialField name type description
    @since 标记当引入一个特定的变化时 @since release
    @throws 和 @exception标签一样. The @throws tag has the same meaning as the @exception tag.
    {@value} 显示常量的值,该常量必须是static属性。 Displays the value of a constant, which must be a static field.
    @version 指定类的版本 @version info

    文档注释:

    在开始的/**之后,第一行或几行是关于类,变量和方法的主要描述。

    之后,你可以包含一个或多个何种各样的@标签。每个@标签必须在一个新行的开始或者在一行的开始紧跟星号(*)。

    多个相同类型的标签应该放在一组。

    子符串处理 

     String及其常用API

    什么是字符串处理?

    一般程序需要处理大量文本数据,Java 语言的文本数据被保存为字符或字符串类型。关于字符及字符串的操作主要用到 String 类和 StringBuffer 类,如连接、修改、替换、比较和查找等。

    字符串是 Java 程序中经常处理的对象之一,因此如果字符串运用得不好,将影晌到程序的运行效率。本章从如何定义字符串开始介绍字符串本身的特性,以及各种字符串操作的实现方法。

    String类

    在代码中遇到字符串常量时,这里的值是"Hello world!",编译器会使用该值创建一个String对象。

    和其它对象一样,可以使用关键字和构造方法来创建String对象。

    String类有11种构造方法,这些方法提供不同的参数来初始化字符串。

    String是不可变对象

    java.lang.String使用了final修饰,不能被继承。

    字符串底层封装了字符数组及针对字符串数组的操作算法。

    字符串一旦创建,对象永远无法改变,单字符串引用可以重新赋值。

    Java字符串在内存中采用Unicode编码方式,任何一个字符对应两个字节的定长编码。

    String 方法

    下面是String类支持的方法,更多详细,参看Java API文档:

    SN(序号)方法描述
    1 char charAt(int index)
    返回指定索引处的 char 值。
    2 int compareTo(Object o)
    把这个字符串和另一个对象比较。
    3 int compareTo(String anotherString)
    按字典顺序比较两个字符串。
    4 int compareToIgnoreCase(String str)
    按字典顺序比较两个字符串,不考虑大小写。
    5 String concat(String str)
    将指定字符串连接到此字符串的结尾。
    6 boolean contentEquals(StringBuffer sb)
    当且仅当字符串与指定的StringButter有相同顺序的字符时候返回真。
    7 static String copyValueOf(char[] data)
    返回指定数组中表示该字符序列的 String。
    8 static String copyValueOf(char[] data, int offset, int count)
    返回指定数组中表示该字符序列的 String。
    9 boolean endsWith(String suffix)
    测试此字符串是否以指定的后缀结束。
    10 boolean equals(Object anObject)
    将此字符串与指定的对象比较。
    11 boolean equalsIgnoreCase(String anotherString)
    将此 String 与另一个 String 比较,不考虑大小写。
    12 byte[] getBytes()
     使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
    13 byte[] getBytes(String charsetName)
    使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
    14 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
    将字符从此字符串复制到目标字符数组。
    15 int hashCode()
    返回此字符串的哈希码。
    16 int indexOf(int ch)
    返回指定字符在此字符串中第一次出现处的索引。
    17 int indexOf(int ch, int fromIndex)
    返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
    18 int indexOf(String str)
     返回指定子字符串在此字符串中第一次出现处的索引。
    19 int indexOf(String str, int fromIndex)
    返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
    20 String intern()
     返回字符串对象的规范化表示形式。
    21 int lastIndexOf(int ch)
     返回指定字符在此字符串中最后一次出现处的索引。
    22 int lastIndexOf(int ch, int fromIndex)
    返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
    23 int lastIndexOf(String str)
    返回指定子字符串在此字符串中最右边出现处的索引。
    24 int lastIndexOf(String str, int fromIndex)
     返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
    25 int length()
    返回此字符串的长度。
    26 boolean matches(String regex)
    告知此字符串是否匹配给定的正则表达式。
    27 boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
    测试两个字符串区域是否相等。
    28 boolean regionMatches(int toffset, String other, int ooffset, int len)
    测试两个字符串区域是否相等。
    29 String replace(char oldChar, char newChar)
    返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
    30 String replaceAll(String regex, String replacement
    使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
    31 String replaceFirst(String regex, String replacement)
     使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
    32 String[] split(String regex)
    根据给定正则表达式的匹配拆分此字符串。
    33 String[] split(String regex, int limit)
    根据匹配给定的正则表达式来拆分此字符串。
    34 boolean startsWith(String prefix)
    测试此字符串是否以指定的前缀开始。
    35 boolean startsWith(String prefix, int toffset)
    测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
    36 CharSequence subSequence(int beginIndex, int endIndex)
     返回一个新的字符序列,它是此序列的一个子序列。
    37 String substring(int beginIndex)
    返回一个新的字符串,它是此字符串的一个子字符串。
    38 String substring(int beginIndex, int endIndex)
    返回一个新字符串,它是此字符串的一个子字符串。
    39 char[] toCharArray()
    将此字符串转换为一个新的字符数组。
    40 String toLowerCase()
    使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
    41 String toLowerCase(Locale locale)
     使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。
    42 String toString()
     返回此对象本身(它已经是一个字符串!)。
    43 String toUpperCase()
    使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
    44 String toUpperCase(Locale locale)
    使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。
    45 String trim()
    返回字符串的副本,忽略前导空白和尾部空白。
    46 static String valueOf(primitive data type x)
    返回给定data type类型x参数的字符串表示形式。


    常用用到的字符串处理,操作

    1.连接字符串

    “+”运算符是最简单,最快捷,也是使用最多的字符串连接方式。

    在使"+"运算符连接字符串和int型(或double型数)数据时,"+"将int(double)型数据自动转换成String类型。

    使用concat()方法也可以。

    语法:

    字符1.concat(字符2);

    连接不同类型数据时用"+"。

    2.内存编码及长度

    获取字符串长度

    语法:

    字符串名.length();

    3.大小写变换(查阅API)

    语法:

    字符串名.toUpperCase();

    String类的toUpperCase()方法可以将字符串的所有字符全部转换为大写,而非子母的字符不受影响。

    语法:

    字符串名.toLowerCase();

    String类的toLowerCase()方法可以将字符串的所有字符全部转换成小写,而非子母的字符不受影响。

    4.trim(查阅API)

    去除空格

    语句:

    字符串名.trim();

    5.使用substring获取子串

    substring方法用于返回一个字符串的子字符串

    substring常用重载方法定义:

    String substring(int beginIndex,int endIndex) 返回字符串中从下标beginIndex(包括)开始到endIndex(不包括)结束的子字符串
    String substring(int beginIndex) 返回字符串中从下标beginIndex(包括)开始到字符串结尾的子字符串

    提取子字符

    语句:

    字符串名.subString();

    6.分割字符串

    语法:

    字符串名.split(数据类型,变量名);

    String类的split()方法可以按指定的分割对目标字符串进行分割,分割后的内容存放在字符串数组中。

    7.字符串替换

    String 类提供了 3 种字符串替换方法,分别是 replace()、replaceFirst() 和 replaceAll()

     replace()

    语法:

    字符串.replace(替换数据名,要替换的数据名);

    replace()方法用于将目标字符串的指定字符串替换成新的字符(全部含有这个元素)。

    replaceFirst()

    语法:

    字符串.replaceFirst(替换数据名,要替换数据名);

     字符串replaceFirst()方法用于将目标字符串中某匹配正则表达式的第一个子字符串替换。

     replaceAll()

    语法:

    字符串.replaceAll(替换数据名,要替换数据名);

     replaceAll()方法用于将目标字符串中匹配某正则表达式的所有子字符串替换。

    8.字符串比较

     语法:

    字符串1.equals(字符串2);

      equals方法相同逐个比较两个字符串的每个字符是否相同,对于字符大小写也要检查。

    语法:

    字符串1.equalslgnoreCace(字符串2);

     与equals方法相同,但比较时不区分大小写。

    语法:

    字符串1.compareTo(字符串2);

     compateTo()方法用于按字典顺序比较两个字符串大小,比较是基于字符串各个字符的Unicode值。

    如果字符串1位于字符串2参数之前,比较结果为一个负整数;否则为整数;如果相等则为0。

     9.使用indexOf实现检索

    String提供几个重载的indexOf方法

    int indexOf(String str) 在字符串中检索str,返回其第一次出现的位置,如果找不到则返回-1
    int indexOf(String str,int fromIndex) 从字符串的fromIndex位置开始检索

     String还定义有lastIndexOf方法:

    int lastIndexOf(String str,int from) str在字符串中多次出现时,将返回最后一个出现的位置


    语法:

    字符串.imdexOf(查找元素);

     indexOf()方法用于返回字符串在指定字符串中首次出现的索引位置,如果能找到返回索值,否则返回-1.

    语法:

    字符串.lastindexOf(查找元素);

    lastindexOf()方法用于返回字符串中指字符串最后一次出现的索引位置,如果找到返回索引,否则返回-1。

    lastindexOf()方法是从右往左查找,如果不指定起始索引位置,默认从字符串末尾找。

    10.charAt(查阅API)

    语法:

    字符串名.charAt(索引值);

    String类的charAt()方法根据指定的索引值查找。

    11. valueOf(查阅API)

    valueOf方法用于将其他类型转换成字符串类型。

    12.startsWith和endsWith(查阅API)

    startsWith检测一个字符串是否以指定字符串开头。
    endsWith检测一个字符串是否以值定字符串结尾。 

     StringBuffer和StringBuilder类

    当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。

    和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。

    StringBuilder类在Java 5中被提出,它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据)。

    由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议使用StringBuilder类。然而在应用程序要求线程安全的情况下,则必须使用StringBuffer类。

    StringBuffer 方法

    常用方法:

    StringBuilder类的常用方法 功能描述
    StringBuilder append(String str) 追加字符串
    StringBuilder insert(int dstOffset,String s) 插入字符串
    StringBuilder delete(int start,int end) 删除字符串
    StringBuilder replace(int start,int end,String str) 替换字符串
    StringBuilder reverse() 字符串反转

    下面的列表里的方法和String类的方法类似:

    序号 方法描述
    1 int capacity()
    返回当前容量。
    2 char charAt(int index)
    返回此序列中指定索引处的 char 值。
    3 void ensureCapacity(int minimumCapacity)
    确保容量至少等于指定的最小值。
    4 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
    将字符从此序列复制到目标字符数组 dst
    5 int indexOf(String str)
    返回第一次出现的指定子字符串在该字符串中的索引。
    6 int indexOf(String str, int fromIndex)
    从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
    7 int lastIndexOf(String str)
    返回最右边出现的指定子字符串在此字符串中的索引。
    8 int lastIndexOf(String str, int fromIndex)
    返回最后一次出现的指定子字符串在此字符串中的索引。
    9 int length()
     返回长度(字符数)。
    10 void setCharAt(int index, char ch)
    将给定索引处的字符设置为 ch
    11 void setLength(int newLength)
    设置字符序列的长度。
    12 CharSequence subSequence(int start, int end)
    返回一个新的字符序列,该字符序列是此序列的子序列。
    13 String substring(int start)
    返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
    14 String substring(int start, int end)
    返回一个新的 String,它包含此序列当前所包含的字符子序列。
    15 String toString()
    返回此序列中数据的字符串表示形式。

    追加字符串

    语法:

    StingBaffer 对象.append(字符串);

    StringBaffer类的append()方法用于向原有StringBaffer对象中追加字符串,追加到StringBaffer对象的末尾。

    替换字符串

    语法:

    StringBaffer 对象.deletecharAt();

    deletecharAt()方法用于移除序列中指定位置的字符。

    反转字符串

    语法:

    StringBuffer 对象.reverse();

     reverse() 方法用于将字符串序列用其反转的形式取代。

    删除字符串

    1. deleteCharAt() 方法

    deleteCharAt() 方法用于移除序列中指定位置的字符,

    语法:

    StringBuffer 对象.deleteCharAt(int index);

    deleteCharAt() 方法的作用是删除指定位置的字符,然后将剩余的内容形成一个新的字符串。

    2.delete方法():

    语法:

    StringBaffer 对象.delete(int start,int end);

    delete()方法用于移除序列中子字符串的字符。

    插入字符串

    语法:

    字符串.insert();

    StringBuilder总结

        · StringBuilder是可变字符串。字符串的内容计算,建议采用StringBuilder实现,这样性能会好一些;

        · java的字符串连接的过程是利用StringBuilder实现的

    StringBuffer和StringBuilder

            StringBuffer是线程安全的,同步处理的,性能稍慢

            StringBuilder是非线程安全的,并发处理的,性能稍快

  • 相关阅读:
    Odoo安装教程2-创建新的插件模块第一讲
    Odoo安装教程1-创建第一个 Odoo 应用
    Odoo开发教程21-Odoo服务器端开发者模式
    Ubuntu 安装LAMP
    Roundcube Webmail信息泄露漏洞(CVE-2015-5383)
    Roundcube Webmail跨站脚本漏洞(CVE-2015-5381 )
    Roundcube Webmail File Disclosure Vulnerability(CVE-2017-16651)
    Roundcube 1.2.2
    XAMPP重置MySQL密码
    python importlib动态导入模块
  • 原文地址:https://www.cnblogs.com/wsnb8/p/11307810.html
Copyright © 2011-2022 走看看