Java基础02——String
2015-05-07 21:34
288 查看
-------android培训、java培训、期待与您交流! ----------
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(Stringstr);
int indexOf(Stringstr,int fromIndex);
根据字符串获取在字符串中的第一次出现的位置.
int lastIndexOf(int ch)
int lastIndexOf(intch,intfromIndex):从指定位置进行ch的查找第一次出现位置
int lastIndexOf(Stringstr);
int lastIndexOf(Stringstr,int fromIndex);
1.4 获取字符串中一部分字符串。也叫子串.
String substring(int beginIndex,intendIndex)//包含begin
不包含end 。
String substring(int beginIndex);
2. 转换
2.1 将字符串变成字符串数组(字符串的切割)
String[] split(Stringregex):涉及到正则表达式.
2.2 将字符串变成字符数组。
char[] toCharArray();
2.3 将字符串变成字节数组。
byte[] getBytes();
2.4 将字符串中的字母转成大小写。
String toUpperCase():大写
String toLowerCase():小写
2.5 将字符串中的内容进行替换
String replace(charoldch,charnewch);
String replace(String s1,String s2);
2.6 将字符串两端的空格去除。
String trim();
2.7 将字符串进行连接 。
String concat(string);
3,判断
3.1 两个字符串内容是否相同
boolean equals(Objectobj);
boolean equalsIgnoreCase(stringstr);忽略大写比较字符串内容。
3.2 字符串中是否包含指定字符串?
boolean contains(stringstr);
3.3 字符串是否以指定字符串开头。是否以指定字符串结尾。
boolean startsWith(string);
boolean endsWith(string);
4,比较
正则表达式:可以通过指定摸个模式来匹配,替换或分隔一个字符串。如: String s = "a+b$#c".replaceAll("[$+#], "NNN"");
split方法可以将一个带特定限定符的字符串中提取标志,如下例:
StringBuffer:就是字符串缓冲区,用于存储数据的容器。
特点:
1,长度的可变的。
2,可以存储不同类型数据。
3,最终要转成字符串进行使用。
4,可以对字符串进行修改。
既然是一个容器对象。应该具备什么功能:
1,添加:
StringBuffer append(data);
StringBuffer insert(index,data);
2,删除:
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(intindex):删除指定位置的元素
3,查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
4,修改:
StringBuffer replace(start,end,string);
void setCharAt(index,char);
增删改查 C(create)U(update)R(read)D(delete)
StringBuilder:jdk1.5以后出现了功能和StringBuffer一模一样的对象
不同的是:
StringBuffer是线程同步的。通常用于多线程。
StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。
jdk升级目的:
1,简化书写。
2,提高效率。
3,增加安全性。
例:将int数组转为字符串并打印,如下:
基本数据类型对象包装类
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
该包装对象主要用基本类型和字符串之间的转换:
基本类型--->字符串
1,基本类型数值+""
2,用String类中的静态方法valueOf(基本类型数值);
3,用Integer的静态方法valueOf(基本类型数值);
字符串--->基本类型
1,使用包装类中的静态方法 xxx parseXxx("xxx类型的字符串");*****
int parseInt("intstring");
long parseLong("longstring");
boolean parseBoolean("booleanstring");
只有Character没有parse方法
2,如果字符串被Integer进行对象的封装。
可使用另一个非静态的方法,intValue();将一个Integer对象转成基本数据类型值。
例:对一个字符串中的数值进行从小到大的排序。
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(Stringstr);
int indexOf(Stringstr,int fromIndex);
根据字符串获取在字符串中的第一次出现的位置.
int lastIndexOf(int ch)
int lastIndexOf(intch,intfromIndex):从指定位置进行ch的查找第一次出现位置
int lastIndexOf(Stringstr);
int lastIndexOf(Stringstr,int fromIndex);
1.4 获取字符串中一部分字符串。也叫子串.
String substring(int beginIndex,intendIndex)//包含begin
不包含end 。
String substring(int beginIndex);
2. 转换
2.1 将字符串变成字符串数组(字符串的切割)
String[] split(Stringregex):涉及到正则表达式.
2.2 将字符串变成字符数组。
char[] toCharArray();
2.3 将字符串变成字节数组。
byte[] getBytes();
2.4 将字符串中的字母转成大小写。
String toUpperCase():大写
String toLowerCase():小写
2.5 将字符串中的内容进行替换
String replace(charoldch,charnewch);
String replace(String s1,String s2);
2.6 将字符串两端的空格去除。
String trim();
2.7 将字符串进行连接 。
String concat(string);
3,判断
3.1 两个字符串内容是否相同
boolean equals(Objectobj);
boolean equalsIgnoreCase(stringstr);忽略大写比较字符串内容。
3.2 字符串中是否包含指定字符串?
boolean contains(stringstr);
3.3 字符串是否以指定字符串开头。是否以指定字符串结尾。
boolean startsWith(string);
boolean endsWith(string);
4,比较
<span style="font-size:12px;">String s1 = "abc";//s1是一个类类型变量,"abc"是一个对象;字符串特点:一旦被初始化就不可以被改变 String s2 = new String("abc"); //s1在内存有一个对象,s2在内存有2个对象 System.out.println(s1 == s2); System.out.println(s1.equals(s2));//String类复写了Object类中的equals方法,该方法用于判断字符串 是否相同。 </span>
<span style="font-size:12px;">String s1 = "张三,李四,王五"; char[] chs = s1.toCharArray(); for(int i=0; i<chs.length; i++) { System.out.println(chs[i]); }</span>
正则表达式:可以通过指定摸个模式来匹配,替换或分隔一个字符串。如: String s = "a+b$#c".replaceAll("[$+#], "NNN"");
split方法可以将一个带特定限定符的字符串中提取标志,如下例:
<span style="font-size:12px;">String[] tokens = "Java#HTML#Perl".split("#", 0);//0代表模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。 for(int i=0; i<tokens.length; i++) { System.out.print(tokens[i] + " "); }</span>字符串和数组间的转换:
<span style="font-size:12px;"><span style="white-space:pre"> </span>字符串转数组: char[] chars = "Java“.toCharArray(); char[] dst = {'J', 'A', 'V', 'A', '0', '1', '7', '3'}; "CS7320".getChars(2, 6, dst, 4); 数组转字符串 String s1 = new String(new char[]{'J', 'A', 'V', 'A'}); String s2 = String.valueOf(new char[]{'J', 'A', 'V', 'A'});</span>
StringBuffer:就是字符串缓冲区,用于存储数据的容器。
特点:
1,长度的可变的。
2,可以存储不同类型数据。
3,最终要转成字符串进行使用。
4,可以对字符串进行修改。
既然是一个容器对象。应该具备什么功能:
1,添加:
StringBuffer append(data);
StringBuffer insert(index,data);
2,删除:
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(intindex):删除指定位置的元素
3,查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
4,修改:
StringBuffer replace(start,end,string);
void setCharAt(index,char);
增删改查 C(create)U(update)R(read)D(delete)
StringBuilder:jdk1.5以后出现了功能和StringBuffer一模一样的对象
不同的是:
StringBuffer是线程同步的。通常用于多线程。
StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。
jdk升级目的:
1,简化书写。
2,提高效率。
3,增加安全性。
例:将int数组转为字符串并打印,如下:
<span style="font-size:12px;">public static String arrayToString(int[] arr) { StringBuilder sb = new StringBuilder(); sb.append("["); for(int i=0; i<arr.length; i++) { if(i != arr.length-1) sb.append(arr[i] + ", "); else sb.append(arr[i] + "]"); } return sb.toString(); }</span>
基本数据类型对象包装类
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
该包装对象主要用基本类型和字符串之间的转换:
基本类型--->字符串
1,基本类型数值+""
2,用String类中的静态方法valueOf(基本类型数值);
3,用Integer的静态方法valueOf(基本类型数值);
字符串--->基本类型
1,使用包装类中的静态方法 xxx parseXxx("xxx类型的字符串");*****
int parseInt("intstring");
long parseLong("longstring");
boolean parseBoolean("booleanstring");
只有Character没有parse方法
2,如果字符串被Integer进行对象的封装。
可使用另一个非静态的方法,intValue();将一个Integer对象转成基本数据类型值。
例:对一个字符串中的数值进行从小到大的排序。
<span style="font-size:12px;">/** * * 思路: * 1. 字符串的数值是对空格进行分隔——利用字符串对象的切割方法 * 2. 字符串——>基本数据类型,可以使用包装类 * 2.1 字符串——>字符串数组 * 2.2 字符串数组——>int数组 * 2.3 对int数组排序 * 2.4 排序后的int数组——>字符串 */ public class WrapperTest { private static final String SPACE_SEPARATOR = " "; public static void main(String[] args) { String numStr = "20 78 9 -7 88 36 29"; System.out.println(numStr); numStr = sortStringNumber(numStr); System.out.println(numStr); } public static String sortStringNumber(String numStr) { String[] str_arr = stringToArray(numStr); int[] num_arr = toIntArray(str_arr); mySortArray(num_arr); String temp = arrToString(num_arr); return temp; } public static String[] stringToArray(String numStr) { String[] str_arr = numStr.split(SPACE_SEPARATOR); return str_arr; } public static int[] toIntArray(String[] str_arr) { int[] arr = new int[str_arr.length]; for(int i=0; i<arr.length; i++) { arr[i] = Integer.parseInt(str_arr[i]); } return arr; } public static void mySortArray(int[] num_arr) { Arrays.sort(num_arr); } public static String arrToString(int[] num_arr) { StringBuilder sb = new StringBuilder(); for(int i=0; i<num_arr.length; i++) { if(i != num_arr.length-1) sb.append(num_arr[i] + SPACE_SEPARATOR); else sb.append(num_arr[i]); } return sb.toString(); } }</span>
相关文章推荐
- java基础02--string
- java基础02 String、StringBuffer和StringBuilder
- java基础_02_继承
- JAVA基础之InterView(一)--String+StringBuffer+StringBuilder的区别
- 2018_02_26牛客网刷题_JAVA基础知识
- Java 基础之String的基本方法(1)
- Java基础:探秘Java中的String、StringBuilder以及StringBuffer
- java基础(一)之StringBuffer,StringBuilder,String区别
- JAVA基础 - 关于String字符串的一些方法
- [疯狂Java]基础类库:String
- java基础-----String和基本数据类型包装类
- 【Java基础面试题】【02】
- 关于java基础类型与引用类型内存存储问题,以及string.intern()方法(String两种创建方式的区别)
- Java基础之字符串String:
- I002-黑马程序员_毕向东_Java基础视频教程第01天-02-Java的跨平台性
- 黑马程序员 java 基础 毕向东 面向对象 String StringBuffer StringBuilder 基本数据类型包装类
- Java 基础——String
- 黑马程序员——java基础之String
- java语言基础及特性-02
- 番外 02: Spring 之使用 JAVA 操作Mysql数据库(为何要用ORM)Spring整合 Mybatis前基础