学习笔记JavaAPI之String类
[size=10.5000pt]一、所属包java.lang.String,没有子类。特点:一旦被初始化就不可以被改变。
创建类对象的两种方式:
String s1 = “abc”;
String s1 = new String(“abc”);
内存存在方式:
String Str = “jack”这个语句会先检查字符串常量池是否存放这个”jack1”这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字符串对象,如果存在直接返回该字符串的内存地址值。
String str3 = new String(“jack”) 该语句会创建两个对象,首先会先检查字符串常量池中存不存在jack这个字符串对象,如果不存在就会创建,如果存在就返回内存地址值。创建了出来之后,new String这个语句就会在堆内存中开辟一个字符串对象。总共两个对象。
注意:equals比较的是对象的内存地址,但是String类复写了Object类中的equals方法,用于判断字符串是否相同。s1.equals(s2)为true。
[size=10.5000pt]二、对字符串操作的方法
[size=10.5000pt]1、获取方法:
1.1:int length()  字符串的长度
1.2:char charAt(int index)  特定位置的字符 (角标越界报错)
    1.3:int indexOf(int ch)  特定字符的位置(overload)(该字符多余1个返回第一个出现的位置)没有找到返回-1
     Int indexOf(int ch,int fromIndex) 从指定位置开始搜索
     int indexOf(String str)  子字符的位置(overload)
     Int indexOf(iString str,int fromIndex) 从指定位置开始搜索
1.4:int lastIndexOf(int ch)  最后一个字符的位置
[size=10.5000pt]2、判断方法:
2.1:字符串是否包含某个子串
      boolean contains(CharSequences)  CharSequences字符序列也可以用int indexOf(String str),返回-1说明不包含。
2.2是否以指定内容开头      Boolean startsWith(String str)
2.3是否以指定内容结尾      boolean endsWith(String str)
2.4是否为空   boolean isEmpty()是否长度为0 如:“” null V1.6
2.5是否相等   boolean equals(Object anObject) 是否相等
              boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等
[size=10.5000pt]三、转换功能
3.1:将字符数组转成字符串
1)构造函数:String (char[])
                 String (char[],offset,count)将字符数组一部分转成字符串(offset开始,count个数)
      例:
Char[] arr = {‘a’,‘b’,‘c’,‘d’,‘e’};
     String str = new String (arr,1,3);
[size=10.5000pt]    2)静态方法:
[size=10.5000pt]    3)Static String copyValue Of(char[])
[size=10.5000pt]    4)Static String copyValue Of(char[],offset,count)
   Static String Value Of(char[])
3.2:将字符串转成字符数组
    Char[] toCharArray();
3.3将字节数组转成字符串
    String (byte[])
    String(byte[],offset,count)
3.4字符串转成字节数组
Byte[] getBytes();
3.5:将基本数据类型转成字符串
Static String Value Of(int)
Static String Value Of(double)
2+””
四、替换方法
   String replace(char old,char,new);
    String s=”hello java”;  String s1 = s.replace(e,k);  s为hello java,  s1 为hkllo java
    String s1 = s.replace(“java”,”word”);
[size=10.5000pt]五、切割方法
    String[] split(regex);
[size=10.5000pt]六、子串,获取
   String substring(int beginindex,int endindex)包含头不包含尾
   String substring(int begin)
[size=10.5000pt]七、转换、去除空格、比较
   7.1:大小写转换
   String toUpperCase();
   String toLowerCase();
   7.2:去除两端多个空格
  String trim();
7.3对两个字符串自然顺序比较
  Int CompareTo()  等于0 小于 负数 大于-正数  比较的ASCII

AJPFX学习笔记JavaAPI之String类的更多相关文章

  1. Java学习笔记21(String类补充:正则表达式)

    正如python的re模块,不过Java和Python的正则表达式有一些区别,这里做简单介绍,具体的细节可以参考网上其他的文章: 功能:可以用于检验一个字符串,比如验证用户名,验证密码格式,验证是否是 ...

  2. Java学习笔记19(String类)

    String代表字符串,在Java中,所有的字符串字面值都作为此类的实例实现 字符串的特点以及简单的原理分析: package demo; /* * String类的特点: * 所有的"&q ...

  3. java学习笔记15(String 类,StringBuffer)

    /* * String类的特点: * 所有的""都是String的对象 * 字符串一旦创建就是常量,不能改变 */ public class StringDemo { public ...

  4. Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)

    1.获取指定字符串中大小写和数字的个数: package demo; public class StringTest { public static void main(String[] args) ...

  5. java学习笔记07--日期操作类

    java学习笔记07--日期操作类   一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...

  6. 并发编程学习笔记(10)----并发工具类CyclicBarrier、Semaphore和Exchanger类的使用和原理

    在jdk中,为并发编程提供了CyclicBarrier(栅栏),CountDownLatch(闭锁),Semaphore(信号量),Exchanger(数据交换)等工具类,我们在前面的学习中已经学习并 ...

  7. JVM学习笔记-第六章-类文件结构

    JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁 ...

  8. Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  9. java学习笔记之日期日历类

    java学习笔记之日期日历 Date日期类概述: 表示特定的瞬间,精确到毫秒 Date类的构造方法: 1.空参数构造方法 Date date = new Date(); 获取到当前操作系统中的时间和日 ...

随机推荐

  1. 谁是性能杀手?Kafka多Topic下启用SSL时延增大问题分析

    问题背景 项目中将Kafka接口进行RESTful封装,在使用RESTful接口进行性能测试时,发现Topic数增多后,开启SSL与非SSL进行测试,发现开启SSL后性能下降得厉害.例如600个Top ...

  2. 朴素的标题:MVC中权限管理实践

    基于MVC的web项目最好的权限控制方式我认为是对Action的控制,实现思路记录于此,权限管理分成两个部分授权.认证. 一.授权 1.读取当前项目中的所有需要控制的Action /// <su ...

  3. dotnet new 命令

    如果想知道这个命令的详细用法,可以在打完命令之后,在输入一个" --help"即可 $ dotnet new --help.NET Initializer Usage: dotne ...

  4. 电子设计省赛--PID

    //2014年4月17日 //2014年6月20日入"未完毕"(未完毕) //2014年6月21日 一開始还以为是多难的算法.事实上就是个渣渣. 当然PID实践中应该会非常难. 另 ...

  5. Android应用基础学习记录

    01_前言 前言,了解了Android的情况.这里也介绍一下本文.本文是记录学习Android应用程序开发过程,视频中使用的Android2.2版本号,我以4.2版本号为基础,找出当中的差异并记录下来 ...

  6. 优化VMware提高虚拟机运行速度的技巧

    vmware虚拟机如何设置不当的话会造成运行速度慢,并影响主机运行,甚至会出现死机. 以下是提高vmware虚拟机运行速度的几个技巧: 文章来自:http://blog.csdn.net/shanzh ...

  7. Python: PS 图像调整--亮度调整

    本文用 Python 实现 PS 图像调整中的亮度调整,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/2 ...

  8. SPOJ:Labyrinth(最大直线)

    The northern part of the Pyramid contains a very large and complicated labyrinth. The labyrinth is d ...

  9. 【POJ 1947】 Rebuilding Roads

    [题目链接] 点击打开链接 [算法] f[i][j]表示以i为根的子树中,最少删多少条边可以组成j个节点的子树 树上背包,即可 [代码] #include <algorithm> #inc ...

  10. 机器学习--DIY笔记与感悟--①K-临近算法

    ##“计算机出身要紧跟潮流” 机器学习作为如今发展的趋势需要被我们所掌握.而今我也需要开始learn机器学习,并将之后的所作所想记录在此. 今天我开始第一课--K临近算法. 一.k-临近的基础概念理解 ...