黑马程序员——学习日记7——常用类API
来源:互联网 发布:战舰世界征服者数据 编辑:程序博客网 时间:2024/05/22 08:12
一、String类
String:
特点:字符串对象一旦被初始化就不会被改变。
String s = new String(); //等效于String s = ""; 不等效String s = null;
这是因为String s = new String();是在创建s时已经给s赋值为空的字符串,即“”。而String s = null;在创建s时,并没有给s给赋值,这里的s没有指定任何字符串。
public static void stringDemo2() { String s = "abc"; //创建一个字符串对象在常量池中。 String s1 = new String("abc"); //创建两个对象一个new一个字符串对象在堆内存中。 System.out.println(s==s1); //false ==比较的是等号右边的两个值的地址,所以两者不相等 System.out.println(s.equals(s1)); //string类中的equals复写Object中的equals建立了string类自己的判断字符串对象是否相同的依据。其实就是比较字符串内容。}String类中的方法及使用:
1,获取:
1.1 获取字符串中字符的个数(长度).
int length();
1.2 根据位置获取字符。
char charAt(int index);
1.3 根据字符获取在字符串中的第一次出现的位置.
int indexOf(int ch)
int indexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置
int indexOf(String str);
int indexOf(String str,int fromIndex);
根据字符串获取在字符串中的第一次出现的位置.
int lastIndexOf(int ch)
int lastIndexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置
int lastIndexOf(String str);
int lastIndexOf(String str,int fromIndex);
1.4 获取字符串中一部分字符串。也叫子串.
String substring(int beginIndex, int endIndex)//包含begin 不包含end 。
String substring(int beginIndex);
2,转换。
2.1 将字符串变成字符串数组(字符串的切割)
String[] split(String regex):涉及到正则表达式.
2.2 将字符串变成字符数组。
char[] toCharArray();
2.3 将字符串变成字节数组。
byte[] getBytes();
2.4 将字符串中的字母转成大小写。
String toUpperCase():大写
String toLowerCase():小写
2.5 将字符串中的内容进行替换
String replace(char oldch,char newch);
String replace(String s1,String s2);
2.6 将字符串两端的空格去除。
String trim();
2.7 将字符串进行连接 。
String concat(string);
3,判断
3.1 两个字符串内容是否相同啊?
boolean equals(Object obj);
boolean equalsIgnoreCase(string str);忽略大写比较字符串内容。
3.2 字符串中是否包含指定字符串?
boolean contains(string str);
3.3 字符串是否以指定字符串开头。是否以指定字符串结尾。
boolean startsWith(string);
boolean endsWith(string);
4,比较。
System.out.println("abc".compareTo("aqz"));
/* 3,两个字符串中最大相同的子串。 * "qwerabcdtyuiop" * "xcabcdvbn" * * 思路: * 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中。 * 如果存在,短的那个字符串就是最大子串。 * 2,如果不是呢,那么就将短的那个子串进行长度递减的方式去子串,去长串中判断是否存在。 * 如果存在就已找到,就不用在找了。 */public class Test3 {/** * @param args */public static void main(String[] args) {String s1 = "qwerabcdtyuiop";String s2 = "xcabcdvbn";String s = getMaxSubstring(s2, s1);System.out.println("s=" + s);}/** * 获取最大子串 * * @param s1 * @param s2 * @return */public static String getMaxSubstring(String s1, String s2) {String max = null, min = null;max = (s1.length() > s2.length()) ? s1 : s2;min = max.equals(s1) ? s2 : s1;System.out.println("max=" + max);System.out.println("min=" + min);for (int i = 0; i < min.length(); i++) {for (int a = 0, b = min.length() - i; b != min.length() + 1; a++, b++) {String sub = min.substring(a, b);// System.out.println(sub);if (max.contains(sub))return sub;}}return null;}}StringBuffer:字符串缓冲区,用于存储数据的容器。
特点:
1,长度的可变的。
2,可以存储不同类型数据。
3,最终要转成字符串进行使用。
4,可以对字符串进行修改。
StringBuffer类中的方法及使用:
1,添加:
StringBuffer append(data);
StringBuffer insert(index,data);
2,删除:
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(int index):删除指定位置的元素
3,查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
4,修改:
StringBuffer replace(start,end,string);
void setCharAt(index,char);
增删改查(CURD): C(create)U(update)R(read)D(delete)
StringBuilder
jdk1.5以后出现了功能和StringBuffer一模一样的对象。就是StringBuilder
不同的是:
StringBuffer是线程同步的。通常用于多线程。
StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。
二、包装类及方法使用
基本数据类型对象包装类。为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。
byte ---> Byte
short ---> Short
int ---> Integer
long ---> Long
float ---> Float
double---> Double
char ---> Character
boolean--->Boolean
该包装对象主要用基本类型和字符串之间的转换。
基本类型--->字符串
1,基本类型数值+""
2,用String类中的静态方法valueOf(基本类型数值);
3,用Integer的静态方法valueO(基本类型数值);
字符串--->基本类型
1,使用包装类中的静态方法 xxx parseXxx("xxx类型的字符串");*****
int parseInt("intstring");
long parseLong("longstring");
boolean parseBoolean("booleanstring");
只有Character没有parse方法
2,如果字符串被Integer进行对象的封装。
可使用另一个非静态的方法,intValue();将一个Integer对象转成基本数据类型值。
自动装箱与拆箱:
装箱:将基本数据类型转换成对象
拆箱:将对象转换成基本数据类型
Integer num = 10; //装箱int num1 = num; //拆箱
jdk1.5以后,自动装箱,如果装箱的是一个字节,那么该数据会被共享不会重新开辟空间。
- 黑马程序员——学习日记7——常用类API
- 黑马程序员——学习日记7
- 黑马程序员——交通灯学习日记
- 黑马程序员——学习日记
- 黑马程序员——150602学习日记
- 黑马程序员——学习日记1
- 黑马程序员——学习日记2
- 黑马程序员——学习日记3
- 黑马程序员——学习日记4
- 黑马程序员——学习日记5
- 黑马程序员——学习日记6
- 黑马程序员——学习日记8
- 黑马程序员——学习日记9
- 黑马程序员——学习日记10
- 黑马程序员——学习日记之--String类常用方法示例
- 黑马程序员—学习日记1概述
- 黑马程序员—学习日记2概述
- 黑马程序员——常用API
- Java语言基础组成2
- 全国各个城市代码
- COLLADA DOM Tutorial
- Maven常用命令
- 2.23 Apps must follow the iOS Data Storage Guidelines or they will be rejected
- 黑马程序员——学习日记7——常用类API
- Log日志记录类
- mac如何修改DNS
- hdu 4614 Vases and Flowers (线段树打标记)
- BZOJ 2186 SDOI2008 沙拉公主的困惑 数论
- (c/c++学习笔记二) sizeof与strlen
- OS认证
- Android中Preference的使用以及监听事件分析
- 入门训练4_A+B问题