12、String类
2016-01-18 16:01
441 查看
十二、String类
1、系统结构图(xmind)2、String方法练习
——1
/* 需求:将一个字符串反转 思路:1、将字符串转换为字符数组 2、将数组反转 3、将字符数组转换为字符串 */ class ReverseTest { public static void sop(Object obj) { System.out.println(obj); } public static void main(String[] args) { String s="abca dv daf"; sop(s); // ReverseString r=new ReverseString(); sop(new ReverseString().reverseString(s)); } } class ReverseString { public static String reverseString(String s,int start,int end) { //将字符串变为字符数组 char[] ch=s.toCharArray(); //将数组进行反转 charReverse(ch,start,end); //将字符数组变为字符串 return new String().valueOf(ch); } //反转整个字符串 public static String reverseString(String s) { return reverseString(s,0,s.length()); } //反转指定字符数组位置 private static void charReverse(char[] ch,int start,int end) { for (int x=start,y=end-1; x<y;x++,y--) { swap(ch,x,y); } } //交换相应数组元素 private static void swap(char[] ch, int start,int end) { char temp=ch[start]; ch[start]=ch[end]; ch[end]=temp; } }
运行结果:
——2
/* 需求:给定一个字符串数组,按照字典顺序进行从小到大的排序。 {"nba","abc","cba","zz","qq","haha"} 思路: ①对数组排序,可以用选择,冒泡都行。 ②for嵌套、比较以及换位。 ③使用String类中提供的用于字符串比较的功能进行比较。 */ public class StringTest { public static void main(String[] args) { String[] arr = {"nba","abc","cba","zz","qq","haha"}; Demo.printArr(arr); Demo.sort(arr); Demo.printArr(arr); } } class Demo { //打印数组方法 public static void printArr(String[] arr) { System.out.print('['+arr[0]); for(int x=1;x<arr.length-1;x++) { System.out.print(','+arr[x]); } System.out.println(','+arr[arr.length-1]+']'); } //排序方法 public static String[] sort(String[] arr) { for(int x=0;x<arr.length;x++) { for(int y=0;y<arr.length-1;y++) { //使用comparaTo方法进行比较 if(arr[y].compareTo(arr[y+1])>0) { String temp = arr[y]; arr[y] = arr[y+1]; arr[y+1] = temp; } } } return arr; } }
运行结果:
——3
/* 需求: 对一个字符串中的数值进行从小到大的排序。 "20 78 9 -7 88 36 29" */ import java.util.Arrays; class WrapperTest { private static final String SPACE_SEPARATOR = " "; public static void main(String[] args) { String Numstr = "20 79 9 -7 88 36 29"; System.out.println(Numstr); Numstr = sortStringNumber(Numstr); System.out.println(Numstr); } public static String sortStringNumber(String Numstr) { //1、将字符串变成字符串数组 String[] str_arr = StringtoArrays(Numstr); //2、将字符串数组变成int数组 int[] arr = toIntArrays(str_arr); //3、对int数组排序 sortArrays(arr); //4、将排序后的int数组变成字符串 Numstr = ArraystoString(arr); return Numstr; } public static String[] StringtoArrays(String Numstr) { //以空格为分割切割Numstr String[] str_arr = Numstr.split(SPACE_SEPARATOR); return str_arr; } public static int[] toIntArrays(String[] str_arr) { int[] arr = new int[str_arr.length]; for(int i=0;i<str_arr.length;i++) { //将字符串数组转换成数组 arr[i] = Integer.parseInt(str_arr[i]); } return arr; } public static void sortArrays(int[] arr) { Arrays.sort(arr); } public static String ArraystoString(int[] arr) { StringBuilder sb = new StringBuilder(); for(int i=0;i<arr.length;i++) { if(i != arr.length-1) sb.append(arr[i]).append(SPACE_SEPARATOR); else sb.append(arr[i]); } //将arr转变为字符串再返回 return sb.toString(); } }
运行结果:
3、tips
——1.StringBuffer
StringBuffer的字符串缓冲区初始容量为16个字符,其实质还是数组。
1.使用setLength设置StringBuffer中字符序列的长度。
如果小于已有字符序列的长度,相当于清除缓冲区中的一部分内容。
如果大于已有字符序列的长度,相当于扩充缓冲区,扩充部门内容用空格字符填充。
2.当创建的StringBuffer内容长度大于16,将会新创建一个新数组,长度比旧数组要长。然后把就数组的内容拷贝到新的数组,超出旧数组长度范围的内容将会放在新数组现在内容的后面,也可以通过StringBuffer(int capacity);构造函数自己设置StringBuffer缓冲区长度。
——1.StringBuilder
jdk1.5以后出现了功能和StringBuffer一模一样的对象,就是StringBuilder。
不同的是:
StringBuffer是线程同步的,通常用于多线程
StringBuilder是线程不同步的,通常用于单线程,它的出现能够提高程序效率。
故StringBuilder多用于多个线程是不安全的,如果需要这样的同步,则建议使用StringBuffer。
——3.基本数据类型对象包装类
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。
用于描述该对象的类就称为基本数据类型对象包装类。
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
该包装对象主要用于基本类型和字符串之间的转换
如果字符串被Integer进行对象的封装,可使用另一个非静态的方法,intValue。将一个Integer对象转成基本数据类型值, 用Integer的静态方法valueOf(String s);
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树