黑马程序员--String、StringBuffer、基本数据类型包装类
2014-11-29 15:19
501 查看
------- android培训、java培训、期待与您交流! ----------
java对字符串用String类进行了描述,将字符串封装成对象,方便于对字符串这种常用的数据进行操作。字符串的特点:一旦被初始化就不能被改变,存储在方法区中的常量池。
字符串对象的创建有两种方式:
String s1 = “abc”;
String s2 = new String(“abc”);
s1和s2是两个不同的地址值,指向的是同一个字符串对象。
String s2 = new String(“abc”);创建了两个对象,“abc”存在于常量池,new String(“abc”);存在于堆内存,这两个对象是同一个字符串。
2、String类的方法
构造方法:
String s = new String( ); 创建一个空内容的字符串
String s1 = new String(“abc”);创建一个字符串对象“abc”,一般不使用这种方式定义字符串
String s2 = “abc”;创建一个字符串对象“abc”,常使用这种方式
new String(char [] ch);将字符数组ch转化成字符串
new String(char[] ch , offset, count);将字符数组的一部分转化成字符串
一般方法:
(1)、获取
获取字符串的长度:length();
获取指定位置的字符:char charAt(int index);
获取指定字符的位置(脚标),该字符不存在返回-1。
int indexOf (int ch);返回第一次找到该字符的脚标。
int indexOf(int ch , fromIndex);返回从指定位置开始第一次找到该字符的脚标。
int indexOf(String str);返回第一次找到该字符串的脚标。
int indexOf(String str , int fromIndex);返回从指定位置开始第一次找到该字符串的脚标。
从末尾开始向前面查找:
int lastIndexOf(int ch);
int lastIndexOf(int ch , fromIndex);
int lastIndexOf(String str );
int lastIndexOf(String str , fromIndex);
获取子串:
String substring(int start);从start位开始,到length-1位的子串
String substring(int start , int end);从start位开始到end-1位的子串,区间定义一般包含头不包含尾。
String substring(0 , str.length());获取整个字符串。
(2)、判断
判断字符串中是否包含某字符串
boolean contains(String substr);
判断字符串是否以指定字符串开头
boolean startsWith(String substr);
判断字符串是否以指定字符串结尾
boolean endsWith(String substr);
判断字符串是否相同
boolean equals(String str1);复写了Object类中的equals方法,判断字符串内容是否相同。
判断字符串内容是否相同,忽略大小写
boolean equalsIgnoreCase(String str2);
(3)、转换
将字符数组转成字符串。
构造函数:String(char[])
String(char[],offset,count):将字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] data, int offset, int count)
static String valueOf(char[]):
将字符串转成字符数组。
char[] toCharArray():
将字节数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
将字符串转成字节数组。
byte[] getBytes():
将基本数据类型转成字符串。
static String valueOf(int)
static String valueOf(double)
String.valueOf(3);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
(4)、替换
String replace(oldchar,newchar);
(5)、切割
String[] split(regex);
(6)、子串。获取字符串中的一部分。
String substring(begin);
String substring(begin,end);
(7)、转换,去除空格,比较。
将字符串转成大写或则小写。
String toUpperCase();
String toLowerCase();
将字符串两端的多个空格去除。
String trim();
对两个字符串进行自然顺序的比较。
int compareTo(string);
字符串方法练习:
特点:
1、可以对字符串进行增删改查操作
2、是一种可变长度的容器
3、可以存储任意类型的数据
4、最终都要变成字符串
常用操作:
1、存储
StringBuffer append():将指定数据作为参数添加到已有数据的结尾处。
StringBuffer insert(intoffset ,数据):可以将数据插入到指定offset位置。
2、删除
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字符。
清空缓冲区:对象.delete(0,对象.length());
3、获取
char charAt(int index);
int indexOf(String str);
int lastIndexOf(String str);
int length();
String substring(int start,int end);
4、修改
StringBuffer replace(int start,int end,String str);
void setCharAt(int index,char ch);
5、反转
StringBuffer reverse();
6、将缓冲区中指定数据存储到指定字符数组中
void getChars(int srcBegin, int srcEnd,char[] dst,int dstBegin)
在JDK1.5版本之后出现了StringBuilder,方法和StringBuffer相同,两者区别是:
StringBuffer是线程同步的。有锁。效率低
StringBuilder是线程不同步的。无锁。效率高
单线程使用StringBuilder。
多线程使用StringBuffer,或者使用StringBuilder自己加锁。
1、可以通过对象的属性和方法操作基本数据
2、可以实现基本数据和字符串之间的转换
基本数据类型 对象包装类。
byte Byte
short short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据类型对象包装类的最常见作用,
就是用于基本数据类型和字符串类型之间做转换
基本数据类型转成字符串。
基本数据类型+""
基本数据类型.toString(基本数据类型值);
字符串转成基本数据类型。
xxx a = Xxx.parseXxx(String);
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
boolean b = Boolean.parseBoolean("true");
Integer i = new Integer("123");
int num = i.intValue();
十进制转成其他进制。
toBinaryString();
toHexString();
toOctalString();
其他进制转成十进制。
parseInt(string,radix);
第一节--String类
1、String类概述java对字符串用String类进行了描述,将字符串封装成对象,方便于对字符串这种常用的数据进行操作。字符串的特点:一旦被初始化就不能被改变,存储在方法区中的常量池。
字符串对象的创建有两种方式:
String s1 = “abc”;
String s2 = new String(“abc”);
s1和s2是两个不同的地址值,指向的是同一个字符串对象。
String s2 = new String(“abc”);创建了两个对象,“abc”存在于常量池,new String(“abc”);存在于堆内存,这两个对象是同一个字符串。
2、String类的方法
构造方法:
String s = new String( ); 创建一个空内容的字符串
String s1 = new String(“abc”);创建一个字符串对象“abc”,一般不使用这种方式定义字符串
String s2 = “abc”;创建一个字符串对象“abc”,常使用这种方式
new String(char [] ch);将字符数组ch转化成字符串
new String(char[] ch , offset, count);将字符数组的一部分转化成字符串
一般方法:
(1)、获取
获取字符串的长度:length();
获取指定位置的字符:char charAt(int index);
获取指定字符的位置(脚标),该字符不存在返回-1。
int indexOf (int ch);返回第一次找到该字符的脚标。
int indexOf(int ch , fromIndex);返回从指定位置开始第一次找到该字符的脚标。
int indexOf(String str);返回第一次找到该字符串的脚标。
int indexOf(String str , int fromIndex);返回从指定位置开始第一次找到该字符串的脚标。
从末尾开始向前面查找:
int lastIndexOf(int ch);
int lastIndexOf(int ch , fromIndex);
int lastIndexOf(String str );
int lastIndexOf(String str , fromIndex);
获取子串:
String substring(int start);从start位开始,到length-1位的子串
String substring(int start , int end);从start位开始到end-1位的子串,区间定义一般包含头不包含尾。
String substring(0 , str.length());获取整个字符串。
(2)、判断
判断字符串中是否包含某字符串
boolean contains(String substr);
判断字符串是否以指定字符串开头
boolean startsWith(String substr);
判断字符串是否以指定字符串结尾
boolean endsWith(String substr);
判断字符串是否相同
boolean equals(String str1);复写了Object类中的equals方法,判断字符串内容是否相同。
判断字符串内容是否相同,忽略大小写
boolean equalsIgnoreCase(String str2);
(3)、转换
将字符数组转成字符串。
构造函数:String(char[])
String(char[],offset,count):将字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] data, int offset, int count)
static String valueOf(char[]):
将字符串转成字符数组。
char[] toCharArray():
将字节数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
将字符串转成字节数组。
byte[] getBytes():
将基本数据类型转成字符串。
static String valueOf(int)
static String valueOf(double)
String.valueOf(3);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
(4)、替换
String replace(oldchar,newchar);
(5)、切割
String[] split(regex);
(6)、子串。获取字符串中的一部分。
String substring(begin);
String substring(begin,end);
(7)、转换,去除空格,比较。
将字符串转成大写或则小写。
String toUpperCase();
String toLowerCase();
将字符串两端的多个空格去除。
String trim();
对两个字符串进行自然顺序的比较。
int compareTo(string);
字符串方法练习:
public class StringDemo { public static void main(String[] args) { //String str = "avcabdf"; // methodGet(str); // String str = "ArrayDemo.java"; // methodIs(str); //replace(); //spl(); String s1 = "abc"; String s2 = new String("abc"); sop("s1==s2:"+(s1==s2)); sop("s1.equals(s2):"+s1.equals(s2)); } public static void methodGet(String str) { // 获取长度 sop(str.length()); // 根据索引获取字符 sop(str.charAt(0)); // 根据字符(串)获取索引 sop(str.indexOf('c')); sop(str.indexOf('a', 2)); } public static void methodIs(String str) { //判断字符串是否为空 sop(str.isEmpty()); //判断字符串是否以某字符串开始 sop(str.startsWith("Array")); //结尾 sop(str.endsWith(".java")); //包含,indexOf也可以判断是否包含(获取第一次出现的位置,返回-1则 //不包含,既可以判断,又可以获取位置) sop(str.contains("Demo")); //相等 sop(str.equals("arrayDemo.java")); //忽略大小写的相等 sop(str.equalsIgnoreCase("ARRaYDemo.java")); } public static void replace(){ String str = "abcdefg"; String str1 = str.replace('a','b'); sop(str); sop(str1); } public static void spl() { String s = "abcd,efg,hijk"; String[]arr = s.split(","); for(int x= 0;x < arr.length;x++){ sop("chs="+arr[x]); } String sub = s.substring(3,12); sop("包含头不包含尾:"+sub); } public static void sop(Object obj) { System.out.println(obj); } }
第二节--StringBuffer 字符串缓冲区
StringBuffer可以构造一个空的字符串缓冲区。特点:
1、可以对字符串进行增删改查操作
2、是一种可变长度的容器
3、可以存储任意类型的数据
4、最终都要变成字符串
常用操作:
1、存储
StringBuffer append():将指定数据作为参数添加到已有数据的结尾处。
StringBuffer insert(intoffset ,数据):可以将数据插入到指定offset位置。
2、删除
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字符。
清空缓冲区:对象.delete(0,对象.length());
3、获取
char charAt(int index);
int indexOf(String str);
int lastIndexOf(String str);
int length();
String substring(int start,int end);
4、修改
StringBuffer replace(int start,int end,String str);
void setCharAt(int index,char ch);
5、反转
StringBuffer reverse();
6、将缓冲区中指定数据存储到指定字符数组中
void getChars(int srcBegin, int srcEnd,char[] dst,int dstBegin)
/* * StringBuffer是一种容器 * 1.长度可变 * 2.存储多种类型数据 * 主要操作:增删改查 */ public class StringBufferDemo { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); //在末尾添加数据 sb.append("abc").append(true).append(110); sop(sb); sb.insert(3, "ABC"); sop(sb); } public static void sop(Object obj){ System.out.println(obj); } }
在JDK1.5版本之后出现了StringBuilder,方法和StringBuffer相同,两者区别是:
StringBuffer是线程同步的。有锁。效率低
StringBuilder是线程不同步的。无锁。效率高
单线程使用StringBuilder。
多线程使用StringBuffer,或者使用StringBuilder自己加锁。
第二节--基本数据类型对象包装类
按照java面向对象的思想将基本数据类型封装成了对象,这样做的好处是:1、可以通过对象的属性和方法操作基本数据
2、可以实现基本数据和字符串之间的转换
基本数据类型 对象包装类。
byte Byte
short short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据类型对象包装类的最常见作用,
就是用于基本数据类型和字符串类型之间做转换
基本数据类型转成字符串。
基本数据类型+""
基本数据类型.toString(基本数据类型值);
字符串转成基本数据类型。
xxx a = Xxx.parseXxx(String);
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
boolean b = Boolean.parseBoolean("true");
Integer i = new Integer("123");
int num = i.intValue();
十进制转成其他进制。
toBinaryString();
toHexString();
toOctalString();
其他进制转成十进制。
parseInt(string,radix);
相关文章推荐
- 黑马程序员——String,StringBuffer和基本数据类型对象包装类
- 黑马程序员__String_StringBuffer_基本数据类型对象包装类
- 黑马程序员----论String,StringBuffer,StringBuilder,基本数据类型对象包装类
- 黑马程序员——Java String、StringBuffer、StringBuilder、基本数据类型对象包装类
- 黑马程序员——String、StringBuffer、StringBuilder和基本数据类型包装类
- 黑马程序员_学习记录12:String、StringBuffer、基本数据类型对象包装类
- 黑马程序员---StringBuffer和基本数据类型对象包装类
- java基础4:String与StringBuffer及基本数据类型包装类
- 黑马程序员—java基础学习--String字符串类,基本数据类型包装类
- 黑马程序员--String系列和基本数据类型包装类
- 黑马程序员_String练习和基本数据类型包装类
- 黑马程序员——Java语言基础:String、基本数据类型对象包装类
- 黑马程序员——43,String,StringBuffer ,基本数据类型包装对象
- 黑马程序员 --- String类 StringBuffer 基本数据类型对象包装类
- 黑马程序员_毕向东Java基础_集合(1)String&StringBuffer&StringBuilder&基本数据类型包装类
- 【黑马程序员】------java基础----String类、StringBuffer(StringBuilder)、基本数据类型包装类
- 黑马程序员——Java基础:String类、StringBuffer、基本数据类型对象包装类
- 黑马程序员——【Java基础】——String、StringBuffer和基本数据包装类
- 黑马程序员——String和基本数据类型包装类
- 黑马程序员——String、StringBuffer、Math、Calendar、Date、基本数据类型