一、概述

  Sting s1 = "abc";    //s1是一个类类型变量,"abc"是一个对象。

  String s2 = new String("abc");

  //s1 、 s2 的区别:

    前者在内存中有一个对象,后者在内存中有两个对象。

  s1.equals(s2) 为true  因为 String复写了equals方法

二、常见的功能-获取和判断

  获取:

    1、int length(); 获取长度

    2、char chatAt(int index); 根据位置获取位置上的字符

    3、 int indexOf(int ch);

      int indexOf(int ch, int fromIndex);

      int indexOf(String str); 返回str 在字符串中第一次出现的位置。

      int indexOf(String str , int fromIndex);  从fromIndex指定位置开始,获取str在字符串中第一次出现的位置。

      int lastIndexOf(int ch); 反向索取ch 在字符串中第一个次出项的位置。

  判断:

    1、字符串中是否包含某一个子串  :  boolean contains(str);

      特殊之处: indexOf(str) : 可以索引str 第一个次出现的位置,如果返回 -1。表示该str不在字符串中存在;所以,也可以用于对指定判断是否包含。

      if(str.indexOf("aa")!=1)

      而且该方法既可以判断,又可以获取出现的位置。

    2、字符中是否有内容  :    boolean isEmpoty(str);      

    3、字符串是否是以指定内容开头的 :  boolean startsWith(str);

    4、字符串是否是以指定内容结尾 :  boolean endsWith(str);

    5、判断字符串的内容是否相同 : boolean equals(str);

    6、判断内容是否相同,并忽略大小写 : boolean equalsIgnoreCase();

  转换:

    1、将字符数组转换成字符串

       String(char[])

       String(char[] , offset, count );

      或者

       static String copyValueOf(char[]);

       static String copyValueOf(char[]  data, int offset , int count);

       static String valueOf(char[]);

    **2、将字符串转换为字符数组

       char[]  toCharArray();

    3、将字节数组转换成字符串

       String(byte[])

       String(byte[] , offset, count ); 将字节数组中的一部分(offset 到 count)

    4、将字符串转换成字节数组

      byte[]  getBytes();

    5、将基本数据类型转换成字符串

      static String valueOf(int)

      static String valueOf(double)

       //3+"";  //string.valueOf(3);

    特殊: 字符串和字节数组在转换过程中,是可以指定编码表的。

  替换: String replace(oldchar , newchar);

  切割: String[] split(regex);  

  子串,获取字符串中的一部分  :  

    String substring(begin);   从此位置开始到结尾

    String substring(begin , end);  包头不包尾

  转换 、 去除空格、 比较

    将字符串转换为大写或者小写 :  

          String toUpperCase();

          String toLowerCase();

    去除空格  :  string trim();

    对两个字符串进行自然顺序的比较

          int compareTo(string);

  更多可查api String类。。。。。

  附加几个练习:

    1、模拟一个trim方法,去除字符串两端的空格; "       dfsafd dsfa       "

    2、将一个字符串进行反转,将字符串中指定部分进行反转,"abcdefg"  ; abfedcg

    3、获取一个字符串在另一个字符串中出现的次数;   “abkkcdkkedkkskk”

    4、获取两个字符串中最大相同的子串,第一个动作:将短的那个串进行长度一次递减的子串打印;   "abcwerthelloyuiodef"      、   "cnhellobnm"

三、StringBuffer

  ——是一个容器

   》长度是可变的;可以字节操作多个数据类型;最终会通过toString 方法变成字符串。

    StringBuffer 是字符串缓冲区

   C create U update R read D delete

   1、存储

      StringBuffer append() : 将指定数据作为参数添加到已有数据结尾处。

      StringBuffer insert(index  ,  数据) :  可以将数据插入到指定index位置。

   2、删除

    StringBuffer delete(start , end): 删除缓冲区中的数据,包含start   ,不包含end

    StringBuffer deleteCharAt(index):  删除指定位置的字符

   3、获取

    char charAt(int index)

    int indexOf(String str)

    int lastIndexOf(String str)

    int length()

    String substring(int start  , int end)

   4、修改

    StringBuffer replace(start ,end string)

   5、反转

    stringBuffer reverse();

   6、将缓冲区中指定数据存储到指定字符数组中。

    void getChars (int srcBegin,  int srcEnd  , char[] dst ,  int dstBegin)

-----StringBuilder (JDK1.5之后出现)

  StringBuffer 是线程同步;

  StringBuilder 是线程不同步。

  

  -------开发建议使用StringBuilder

升级三个因素:  提高效率、简化书写、提高安全性

四、基本数据类型对象包装类

   基本数据类型转换为字符串

      ---基本数据类型.toString(基本数据类型值);

     如: Integer.toString(34);

   字符串转换成基本数据类型。

      --- int  a   =   Integer.parseInt("123");

      --- double  b  =  Double.parseDouble("123.3");

   十进制转成其他进制

      --- toBinaryString();

      ---toHexString();    --- toOctalString();

   其他进制转成十进制

      --- parseInt(string  , radix); ------radix 你要转换的进制

----JDK1.5 新特性

    Integer x = 4;  //自动装箱 。 new Integer(4);

    x  =  x /*  x.intValue() */ + 2;  // x+2:  x 进行自动拆箱,变成了int 类型,和2进行加法运算,再将结果 进行装箱赋值给x 。

String类、 StringBuffer、基本数据类型对象包装类的更多相关文章

  1. Java基础---String类和基本数据类型包装类

    第一讲     String类 一.概述         String是字符串的类类型,用于描述字符串事物.字符串是一个特殊的对象.特殊之处就在于: Stings= new String();和Str ...

  2. Java面向对象 String 基本数据类型对象包装类

      Java面向对象  String 知识概要:              (1)String的用法详解 (2)基本数据类型对象包装类 String          顾名思义,该类主要是对字符串 ...

  3. 黑马程序员_Java基本数据类型对象包装类

    基本数据类型对象包装类 byte Byte short Short int Integer long Long boolean Boolean float Float double Double ch ...

  4. JAVA学习第三十二课(经常使用对象API)- 基本数据类型对象包装类

    将基本数据类型(8种:int..)封装成对象的优点就是能够在对象中封装很多其它的功能和方法来操控该数据 常见的操作就是:用于基本数据类型与字符串之间的转换 基本数据类型对象包装类一般用于基本类型和字符 ...

  5. Java---24---基本数据类型对象包装类

    基本数据类型对象包装类 byte Byte short  short int  Integer boolean  Boolean float    Float double   Double char ...

  6. java 中的Number类 Character类 String类 StringBuffer类 StringBuilder类

    1. Number类 Java语言为每一个内置数据类型提供了对应的包装类.所有的包装类(Integer.Long.Byte.Double.Float.Short)都是抽象类Number的子类.这种由编 ...

  7. Java ——String 类 StringBuffer 和 StringBuilder类 随机字符

    本节重点思维导图 String 类 创建字符串 String str = "I love ai"; 在代码中遇到字符串常量时,"I love ai",编译器会使 ...

  8. Java—API/Obiect类的equals toString方法/String类/StringBuffer类/正则表达式

    API  Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来 ...

  9. String类StringBuffer类与StringBuilder类gc垃圾回收

    String类的特点 直接赋值和new调用构造方法两种, 直接赋值时会将字符串常量入内存池,当其他变量再赋相同值时,不再在堆空间开辟内存 new构造方法会开辟两块堆内存空间,可以使用intern手工入 ...

随机推荐

  1. js获取get方式提交的参数返回json格式数据

    /** * 获取GET提交的参数 * @return JSON格式 * @author Terry */ function getArgs(){ var args = {}; var match = ...

  2. C语言之程序结构

    一个好的程序首先要有好的程序结构,我从变量和结构两个方面来做分析. 一.浅谈程序中的变量 一个程序架构最基本的就是程序变量,谈到程序中的变量,我们应该考虑两部分,一方面是变量的作用域,一方面是变量的生 ...

  3. C语言全局变量的定义与声明

    C语言中全局变量的定义与声明困扰着许多C语言初学者.本文讲述了全局变量定义与声明的用法,而且本为也将阐述这种用法的内在原理.我们先从两个错误例子引入,以下两个例程都在vc6.0平台上测试. 两种错误例 ...

  4. C++ 11 笔记 (四) : std::bind

    std::bind 接受一个可调用的对象,一般就是函数呗.. 还是先上代码: void func(int x, int y, int z) { std::cout << "hel ...

  5. shell脚本学习积累笔记(第一篇)

    (1)首先,今天在执行shell脚本./test.sh时抛出“/bin/sh^M: bad interpreter: No such file or directory”的异常,百度后,才知道这是由于 ...

  6. XSS与字符编码的那些事儿

    目录 0x00:基本介绍 0x01:html实体编码 0x02:新增的实体编码 实体编码变异以及浏览器的某些工作原理! 0x03:javascript编码 0x04:base64编码 0x05:闲扯 ...

  7. [wikioi]乌龟棋

    http://wikioi.com/problem/1068/ 多重背包.边界f[0,0,0,0]=a[1](初始时没有用任何卡片,获得棋盘第一格的分数)DP方程:f[i,j,k,l]=max(f[i ...

  8. 使用Qt实现简单的图片预览效果 good

    http://www.cnblogs.com/appsucc/archive/2012/02/28/2371506.html Qt之实现工具箱界面程序 http://www.cnblogs.com/a ...

  9. show processlist 输出ID 和 information_schema.PROCESSLIST 的id,information_schema.innodb_trx的TRX_MYSQL_T

    Session 1: mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> update Client ...

  10. 在linux系统下怎么安装两个nginx

    在linux下安装nginx的时候,一般在./configure的阶段会要求通过prefix设置安装路径.因此,在./configure的时候指定不同的prefix就可以安装多个nginx啦. 值得注 ...