String类和基本数据类型
2015-08-26 18:13
330 查看
一、String类
1、String类的理解:在java中,用String类对字符串事物进行描述,这样的好处是把字符串封装成对象,可以对字符串这种常见数据进行方便的操作。2、特点:①、字符串是一个特殊的对象。②、字符串一旦被初始化就不能被改变,存放在方法区中的常量池中。
3、String类的小例子
class StringDemo { public static void main(String[] args) { /* 创建String对象的两种方式 */ String s1 = "abc"; // s1在内存中只有一个对象abc。 String s2 = new String("abc"); // s2在内存中两个对象abc和new。 System.out.println(s1 == s2);// false,对象不同。 System.out.println(s1.equals(s2));// true。String类复写了Object类中equals方法, // 该方法用于判断字符串是否相同。 } }
4、String类的常用方法
4.1获取
4.1.1字符串中的包含的字符数,也就是字符串的长度。
int length()
4.1.2根据位置获取位置上某个字符。
char charAt(int index)
4.1.3根据字符获取字符在字符串中的位置。
int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str):返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。
4.2判断
4.2.1字符串中是否包含某一个子串。
boolean contains(str)
4.2.2字符串中是否有内容。
boolean isEmpty():原理就是判断长度是否为0。
4.2.3字符串是否以指定字符串开头。
boolean startsWith(string)
4.2.4字符串是否以指定字符串结尾。
boolean endsWith(string)
4.2.5判断字符串内容是否相同。复写了Object类中的equals方法。
boolean equals(string)
4.2.6判断内容是否相同,并忽略大小写。
boolean equalsIngnoreCase()
4.3转换
4.3.1将字符数组转成字符串。
构造函数:String(char[])
String (char[],offset,count):将字符数组中的一部分转成字符串。
静态方法:static String copyValueOf(char[])
static String copyValueOf(char[] data,int offset , inet count)
static String valueOf(char[])
4.3.2将字符串转成字符数组。
char[] toCharArray()
4.3.3将字符数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
4.3.4 将字符串转成字节数组。
byte[] getBytes():
4.3.5 将基本数据类型转成字符串。
static String valueOf(int)
static String valueOf(double)
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
4.4替换
String replace(oldchar,newchar);
4.5切割
String[] split(regex);
4.6子串。获取字符串中的一部分。
String substring(begin);
String substring(begin,end);
4.7转换,去除空格,比较。
4.7.1 将字符串转成大写或则小写。
String toUpperCase();
String toLowerCase();
4.7.2 将字符串两端的多个空格去除。
String trim();
4.7.3 对两个字符串进行自然顺序的比较。
int compareTo(string);
代码演示:
class StringMethodDemo { public static void method_7() { String s = " Hello Java "; sop(s.toLowerCase()); sop(s.toUpperCase()); sop(s.trim()); String s1 = "a1c"; String s2 = "aaa"; sop(s1.compareTo(s2)); } public static void method_sub() { String s = "abcdef"; sop(s.substring(2));//从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界异常。 sop(s.substring(2,4));//包含头,不包含尾。s.substring(0,s.length()); } public static void method_split() { String s = "zhagnsa,lisi,wangwu"; String[] arr = s.split(","); for(int x = 0; x<arr.length; x++) { sop(arr[x]); } } public static void method_replace() { String s = "hello java"; //String s1 = s.replace('q','n');//如果要替换的字符不存在,返回的还是原串。 String s1 = s.replace("java","world"); sop("s="+s); sop("s1="+s1); } public static void method_trans() { char[] arr = {'a','b','c','d','e','f'}; String s= new String(arr,1,3); sop("s="+s); String s1 = "zxcvbnm"; char[] chs = s1.toCharArray(); for(int x=0; x<chs.length; x++) { sop("ch="+chs[x]); } } public static void method_is() { String str = "ArrayDemo.java"; //判断文件名称是否是Array单词开头。 sop(str.startsWith("Array")); //判断文件名称是否是.java的文件。 sop(str.endsWith(".java")); //判断文件中是否包含Demo sop(str.contains(".java")); } public static void method_get() { String str = "abcdeakpf"; //长度 sop(str.length()); //根据索引获取字符。 sop(str.charAt(4));//当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException。 //根据字符获取索引 sop(str.indexOf('m',3));//如果没有找到,返回-1. //反向索引一个字符出现位置。 sop(str.lastIndexOf("a")); } public static void main(String[] args) { method_7(); } public static void sop(Object obj) { System.out.println(obj); } }
二、StringBuffer类和StringBuilder类
1、StringBuffer:是一个字符串缓冲对象,用于存储数据的容器。2、StringBuffrt特点:
(1)、可以对字符串内容进行修改。
(2)、是一个容器。
(3)、是可变长度的。
(4)、缓冲区中可以存储任意类型的数据。
(5)、最终需要变成字符串。
3、StringBuilder是JDK1.5 版本之后出现了StringBuilder。StringBuffer是线程同步,StringBuilder是线程不同步。
3、容器常用的方法
3.1、存储。
StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,数据):可以将数据插入到指定index位置。
3.2、删除。
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字符。
3.3、获取。
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
3.4修改。
StringBuffer replace(start,end,string);
void setCharAt(int index, char ch) ;
3.5反转。
StringBuffer reverse();
3.6将缓冲区中指定数据存储到指定字符数组中。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
代码演示:
class StringBufferDemo { public static void main(String[] args) { method_update(); StringBuilder sb = new StringBuilder("abcdef"); char[] chs = new char[6]; sb.getChars(1,4,chs,1);//将 for(int x=0; x<chs.length; x++) { sop("chs["+x+"]="+chs[x]+";"); } draw(3,6); draw(8,9); // StringBuilder sb1 = new StringBuilder(); // sb1.append(new Demo()).append(new Demo()); // sop("sb1="+sb1); } public static void method_update() { StringBuffer sb = new StringBuffer("abcde"); // sb.replace(1,4,"java"); sb.setCharAt(2,'k'); sop(sb.toString()); } public static void method_del() { StringBuffer sb = new StringBuffer("abcde"); // sb.delete(1,3); //清空缓冲区。 //sb.delete(0,sb.length()); //sb.delete(2,3); sb.deleteCharAt(2); sop(sb.toString()); } public static void method_add() { StringBuffer sb = new StringBuffer(); //sb.append("abc").append(true).append(34); // StringBuffer sb1 = sb.append(34); // sop("sb==sb1:"+(sb==sb1)); sb.insert(1,"qq"); sop(sb.toString());//abctrue34 //sop(sb1.toString()); } public static void sop(String str) { System.out.println(str); } public static void draw(int row,int col) { StringBuilder sb = new StringBuilder(); for(int x=0; x<row; x++) { for(int y=0; y<col; y++) { sb.append("*"); } sb.append("\r\n"); } sop(sb.toString()); } }
三、基本数据类型对象包装类
1、定义:按照面向对象思想将基本数据类型封装成了对象。2、好处:
(1)、可以通过对象中的属性和行为操作基本数据。
(2)、可以实现基本数据类型和字符串之间的转换。
3、基本数据类型对象包装类。
byte Byte
short short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
4、常用操作方法
4.1基本数据类型转成字符串
基本数据类型+""
基本数据类型.toString(基本数据类型值);
如: Integer.toString(34);//将34整数变成"34";
4.2字符串转成基本数据类型
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();
4.3十进制转成其他进制
toBinaryString();
toHexString();
toOctalString();
4.4其他进制转成十进制
parseInt(string,radix);
代码演示:
class IntegerDemo { public static void sop(String str) { System.out.println(str); } public static void main(String[] args) { //整数类型的最大值。 //sop("int max :"+Integer.MAX_VALUE); // 将一个字符串转成整数。 int num = Integer.parseInt("123");//必须传入数字格式的字符串。 //long x = Long.parseLong("123"); // sop("num="+(num+4)); // sop(Integer.toBinaryString(-6)); // sop(Integer.toHexString(60)); int x = Integer.parseInt("3c",16); sop("x="+x); } }
四、小结
String类是开发过程中最常用到的基础类。要牢固掌握String类和其他基本数据类型的相互转换。----------android培训、java培训、java学习型技术博客、期待与您交流!------------
相关文章推荐
- "ssllabs" website and "testssl" website
- 两种隐藏元素方式【display: none】和【visibility: hidden】的区别及由此引出的问题
- libevent多线程使用事项
- HDOJ 3466 Proud Merchants(01背包)
- Server2008 II7中配置ASP+Access运行环境
- HDU---1272-小希的迷宫(并查集)
- Unity Game Programming AI(2)有限状态机
- STM32F103ZET6 用定时器级联方式输出特定数目的PWM
- 栈和队列
- 前端传递参数,由于控制器层类实现了struts2的ModelDriven而产生的一个异常
- 模拟键盘发送文字
- HDFS的回收站 && 安全模式
- 【C++】阅读计划
- C#使用Dispose模式实现手动对资源的释放
- Ubuntu中Atom编辑器显示中文乱码的处理方法
- SpringMVC注解
- B. Order Book------(Codeforces Round #317 [AimFund Thanks-Round] (Div. 2))
- HDU - 4687(带花树求最大匹配的变形)
- Ubuntu中Atom编辑器显示中文乱码的处理方法
- 最小表示法--让你速度gank序列