JAVA_String类及StringBuffer类
2013-06-04 12:35
549 查看
字符串是一个特殊的对象:
在下面代码中体现String类中的功能:
StringBuffer的特性:
在下面代码中体现String类中的功能:
<span style="font-size:18px;"><strong>public class SringDemo { public static void main(String[] args) { /* * 字符串最大的特点:一旦初始化就不可以被改变 * str在内存中有一个对象 * str1在内存中有两个对象 * * String 中常用的方法 : * 1.获取 * 获取字符串的长度:int length(); * 根据索引获取字符:char charAt(int index); * 根据字符串获取该字符在字符串中的位置: * int indexOf(int char);返回的是char在字符中第一次出现的位置 * int indexOf(int char,int fromIndex);从fromIndex指定位置开始,获取ch在字符串中出现的位置 * * int indexOf(String str);返回的是str在字符中第一次出现的位置 * int indexOf(Sting str,int fromIndex);从fromIndex指定位置开始,获取str在字符串中出现的位置 * * 2.判断: * 判断一个字符串是否包含某一个字串:boolean contains(str); * 判断字符串中是否有内容: boolean isEmpty(); * 字符串是否以指定内容开头: boolean startWith(str); * 字符串是否以指定内容结尾: boolean endsWith(str); * 判断字符串内容是否相同: boolean equals(str); * 判断字符串内容是否相同并忽略大小写: boolean equalsIgnoreCase(); */ //str是一个变量,"abc"是一个对象 String str1 = new String("abc"); String str2 = "abc"; String str = "abcdeafgd"; // 1、获取 System.out.println(str.length()); System.out.println(str.charAt(4));//根据索引获取字符 System.out.println(str.indexOf('d'));//返回的是char在字符中第一次出现的位置 System.out.println(str.indexOf('a', 3));//从fromIndex指定位置开始,获取ch在字符串中出现的位置 System.out.println(str.lastIndexOf("a"));//反向索引一个字符串出席那的位置 //2、判断 String str3 = "ArrayDemo.java"; System.out.println(str3.startsWith("Array"));//判断是否以Array开始 System.out.println(str3.endsWith(".java"));//判断是否以.java结束 System.out.println(str3.contains("Demo"));//判断是否包含Demo System.out.println(str3.isEmpty());//判断字符串是否为空 // System.out.println(str == str1); // System.out.println(str == str2); // System.out.println(str.equals(str1));//该方法用于判断字符串是否相等 } } </strong></span>
<span style="font-size:18px;"><strong>public class StringDemo { /* * 转换:将字符串转换成大写或小写; * String toUpperCase(); * String toLawerCase(); * 将字符串两端的空格取去除: * String trim(); * 对两个字符串进行自然顺序的比较: * int CompareTo(string); * 返回的值正数,负数,0 表示大小 * */ public static void main(String[] args) { String str = " Hello java"; String str1 = "aaa"; String str2 = "abc"; System.out.println(str.toUpperCase());//变成大写 System.out.println(str.toLowerCase());//变成小写/ System.out.println(str.trim());//去除两端空格 System.out.println(str1.compareToIgnoreCase(str2)); } }</strong></span>
<pre class="html" name="code"><span style="font-size:18px;"><strong>public class StringDemo { /* * 替换: * String replace(oldchar,newchar); * 如果替换的字符不存在返回原来的 * * 切割: * String[] split(regex); * * 获取字串: * String substring(int beginIndex); * String substring(int begin,int endIndex); * 获取结果包含头,不包含尾 */ public static void main(String[] args) { //替换 String str = "hellojava"; System.out.println(str.replace('h', 'H'));//替换指定字符 System.out.println(str.replace("java","你好"));//替换指定字符串 //切割 String s = "张三,李四,王五"; String[] s1 = s.split(",");//以逗号为切割点 for(String k : s1){//遍历数组 System.out.println(k); } System.out.println(s.substring(3,5));//可以作为获取功能,获取指定位置上的字符串 //获取字符串 String s2 = "abcdefgh"; System.out.println(s2.substring(2));//从指定位置开始获取 System.out.println(s2.substring(2,5));//获取指定某段字符串 } } </strong></span>
<pre class="html" name="code"><span style="font-size:18px;"><strong>public class Demo { /* *将字符数组转换成字符串: * 构造函数:String(char[]); * String(char[],offest,count) * 静态方法:static String copyValueOf(char[]); * static String copyValueOf(char[],int offext,int count); * static valueOf(char[]); *将字符串转换成字符数组: *char[] toCharArray(); *将字节数组转换成字符串: *构造函数:String(byte[]); * String(byte[],offest,count); *将基本数据类型转换成字符串: *static String valueOf(int); *Static String valueOf(double); * */ public static void main(String[] args) { //将字符数组转换成字符串 char[] arr = {'a','b','c','d','e','f','g','h'}; String s = new String(arr);//转换成字符串 System.out.println(s); String s1 = new String(arr,1,3);//转换其中的一部分 System.out.println(s1); System.out.println(String.copyValueOf(arr));//静态方法的用法 System.out.println(String.copyValueOf(arr,1,5));//转换其中的一部分(count是数组的长度) //将字符串变化成字符数组 String ss = "abcdsss"; char[] arr1 = ss.toCharArray(); for(char k : arr1){ System.out.println("char=" + k); } //基本数据类型转换成字符串 int x = 3; String n = 3 + ""; System.out.println(String.valueOf(x)); System.out.println(n); } }</strong></span>
<span style="font-size:18px;"><strong>下面细节个练习的代码:</strong></span>
<pre class="html" name="code"><span style="font-size:18px;"><strong>public class StringDemo1 { public static void main(String[] args) { //去掉字符串两端"-"获取字符串 String str = "--ab cd--"; int start = 0, end = str.length() - 1; //从开始位置判断 while(start <= end && str.charAt(start) == '-'){ start++; //从结束位置判断 while(start <= end && str.charAt(end) == '-'){ end--; } } //System.out.println(str.trim()); System.out.println(str.substring(start, end+1)); } }</strong></span>
<span style="font-size:18px;"><strong></strong></span>
<span style="font-size:18px;"><strong>public class StringDemo2 { /* * 字符串翻转 * 1.将字符串变成数组 * 2.对数组翻转 * 3.将数组变成字符串 */ public static void main(String[] args) { String str = "abcd efgh"; System.out.println(reverseString(str,0,2));//怎么不可以局部翻转 } public static String reverseString(String s,int start,int end){ char[] chars = s.toCharArray(); reverse(chars,start,end); return (new String(chars)); } public static String reverseString(String s){ return reverseString (s,0,s.length()); } private static void reverse(char[] arr, int x, int y) { for(int start=x,end=y-1;start<end;start++,end--){ swap(arr,start,end); } } private static void swap(char[] arr, int x, int y) { char temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } </strong></span>
<span style="font-size:18px;"><strong></strong></span>
public class StringDemo { /* * 替换: * String replace(oldchar,newchar); * 如果替换的字符不存在返回原来的 * * 切割: * String[] split(regex); * * 获取字串: * String substring(int beginIndex); * String substring(int begin,int endIndex); * 获取结果包含头,不包含尾 */ public static void main(String[] args) { //替换 String str = "hellojava"; System.out.println(str.replace('h', 'H'));//替换指定字符 System.out.println(str.replace("java","你好"));//替换指定字符串 //切割 String s = "张三,李四,王五"; String[] s1 = s.split(",");//以逗号为切割点 for(String k : s1){//遍历数组 System.out.println(k); } System.out.println(s.substring(3,5));//可以作为获取功能,获取指定位置上的字符串 //获取字符串 String s2 = "abcdefgh"; System.out.println(s2.substring(2));//从指定位置开始获取 System.out.println(s2.substring(2,5));//获取指定某段字符串 } }
<span style="font-size:18px;"><strong>public class StingDemo3 { /* * 获取字符串中一个字符串出现的次数 */ public static void main(String[] args) { String str = "abkkcdakkebfakkgbakkha"; System.out.println(getCount(str,"kk")); } public static int getCount(String str,String key){ int count = 0; int index = 0; while((index = str.indexOf(key))!= -1){ System.out.println("str" + str); str = str.substring(index + key.length()); count++; } return count; } } </strong></span>
<span style="font-size:18px;"><strong>public class StringDemo4 { /* * 获取两个字串中的最大相同的字串 */ public static void main(String[] args) { String s = "abcdhellodfgda"; String s1 = "echellomklkji"; System.out.println(getMaxSubString(s,s1)); } public static String getMaxSubString(String s1,String s2){ for(int x = 0; x < s2.length(); x++){ for(int y = 0, z = s2.length()-x; z != s2.length()+1; y++, z++){ String temp = s2.substring(y,z); //System.out.println(temp); if(s1.contains(temp)){ return temp; } } } return ""; } } </strong></span>
StringBuffer的特性:
<span style="font-size:18px;"><strong>public class StringBufferDemo { /* * StringBuffeer:字符串缓冲区 * 特点: * 长度可变化 * 可以操作多种类型 * 最终会通过toString转换成字符串 * 存储: * StringBuffer apppend();将指定数据添加到已有数据的结尾处 * 插入:StringBuffer insert(index,数据);在指定位置插入 * * 删除: * StringBuffer delete(start,end);//删除某一段包,含start不包含end * StringBuffer deleteCharAt(index);//查出指定位置的字符 * 修改:(替换) * StringBufffer replace(start,end,str);//替换指定位置上的内容 * void steCharAt(index,char);//替换某一个字符 (无返回) * * 查询: * char charAt(index); 根据下标获取 * int indexOf(String str); 跟字符获取下标 * int length();字符长度 * String substring(int start,int end);//获取一部分 * * 反转: * StringBuffer reverse();//反转 * * 将缓冲区中的指定字符串存储到指定字符数组中 * void getChars(int srcBegin,int srcEnd,char[] dest,int dextBegin) * 参数意思:指定开始出,指定结束处,指定存储位置,指定存储开始位置 */ public static void main(String[] args) { StringBuffer sb = new StringBuffer(); //添加(插入) sb.append("abcde").append("java").append("hello"); sb.insert(2, "qq");//在指定位置插入 System.out.println(sb.toString()); //删除 sb.delete(1, 3);//删除一段数据 System.out.println(sb.toString()); sb.deleteCharAt(4);//删除指定位置上的数据 System.out.println(sb.toString()); //替换 sb.replace(1, 3, "kk");//替换一段字符 System.out.println(sb.toString()); sb.setCharAt(2, 's');//替换特定字符 System.out.println(sb); //反转 sb.reverse();//字符串反转 System.out.println(sb.toString()); //将缓冲区中的指定字符串存储到指定字符数组中 StringBuffer s = new StringBuffer("abcdefgh"); char[] arr = new char[4]; s.getChars(1, 4, arr, 1); for(int i = 0; i < arr.length; i++){ System.out.println("char["+ i +"]=" + arr[i]); } } }</strong></span>
public class StringBufferDemo { /* * StringBuffeer:字符串缓冲区 * 特点: * 长度可变化 * 可以操作多种类型 * 最终会通过toString转换成字符串 * 存储: * StringBuffer apppend();将指定数据添加到已有数据的结尾处 * 插入:StringBuffer insert(index,数据);在指定位置插入 * * 删除: * StringBuffer delete(start,end);//删除某一段包,含start不包含end * StringBuffer deleteCharAt(index);//查出指定位置的字符 * 修改:(替换) * StringBufffer replace(start,end,str);//替换指定位置上的内容 * void steCharAt(index,char);//替换某一个字符 (无返回) * * 查询: * char charAt(index); 根据下标获取 * int indexOf(String str); 跟字符获取下标 * int length();字符长度 * String substring(int start,int end);//获取一部分 * * 反转: * StringBuffer reverse();//反转 * * 将缓冲区中的指定字符串存储到指定字符数组中 * void getChars(int srcBegin,int srcEnd,char[] dest,int dextBegin) * 参数意思:指定开始出,指定结束处,指定存储位置,指定存储开始位置 */ public static void main(String[] args) { StringBuffer sb = new StringBuffer(); //添加(插入) sb.append("abcde").append("java").append("hello"); sb.insert(2, "qq");//在指定位置插入 System.out.println(sb.toString()); //删除 sb.delete(1, 3);//删除一段数据 System.out.println(sb.toString()); sb.deleteCharAt(4);//删除指定位置上的数据 System.out.println(sb.toString()); //替换 sb.replace(1, 3, "kk");//替换一段字符 System.out.println(sb.toString()); sb.setCharAt(2, 's');//替换特定字符 System.out.println(sb); //反转 sb.reverse();//字符串反转 System.out.println(sb.toString()); //将缓冲区中的指定字符串存储到指定字符数组中 StringBuffer s = new StringBuffer("abcdefgh"); char[] arr = new char[4]; s.getChars(1, 4, arr, 1); for(int i = 0; i < arr.length; i++){ System.out.println("char["+ i +"]=" + arr[i]); } } }
相关文章推荐
- JAVA基础 day13 String类和StringBUffer类的常用方法 基本数据类型包装类的学习
- 黑马程序员_Java面对对象——String类和StringBuffer类
- Java中String类StringBuffer类和StringBuilder类的区别
- 黑马程序员——Java常用类笔记(上)【Object类/Scanner类、String类/StringBuffer类、包装类】
- 黑马程序员——Java基础——String类、StringBuffer类、StringBuilder类、基本数据类型对象包装类操作、正则表达式应用
- java 中的Number类 Character类 String类 StringBuffer类 StringBuilder类
- 【Java-常用类】String类,StringBuffer类,StringBuilder类
- java中String类、StringBuffer类、StringBuilder类的区别(未完待续)
- Java基础之String类--String类、StringBuffer类、包装类
- JAVA中String类与StringBuffer类的区别
- java中String类和StringBuffer类实例详解
- 黑马程序员————Java基础之String类与StringBuffer类
- 黑马程序员——Java基础---常用类--Object类,Scanner类,String类,StringBuffer类,StringBuilder类
- JAVA的StringBuffer类和String类
- Java之String类、StringBuffer类和StringBuilder类
- Java第5课(可变的String类---StringBuffer类)
- Java String类和StringBuffer类的区别
- JAVA的StringBuffer类和String类
- Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)
- Java中 String类、StringBuilder类、StringBuffer类 区别与如何选择