Java探索之旅(10)——数组线性表ArrayList和字符串生成器StringBuffer/StringBuilder
2014-10-31 10:55
393 查看
1.数组线性表ArrayList
数组一旦定义则不可改变大小。ArrayList可以不限定个数的存储对象。添加,插入,删除,查找比较数组更加容易。可以直接使用引用类型变量名输出,相当于toString()。输出一个数组([,,,,,,]),数组中元素为对应标号存储元素的toString[]。
数组线性表和数组的区别总结如下:
public class TestArrayList { public static void main(String[] args) { java.util.ArrayList<Person> PersonList=new java.util.ArrayList<Person>(); PersonList.add(new Person("张三","湖北宜昌")); PersonList.add(new Person("李四","广东东莞")); PersonList.add(1,new Person("王五","湖南永州")); System.out.println((PersonList.get(1)).toString()); System.out.println(PersonList);//使用引用类型变量名称 } } class Person { protected String name; protected String address; Person(){this(null,null);} Person(String a,String b) {name=a;address=b;} public String toString() { return name+":"+address; } }
2.字符串生成器类StringBuilder/StringBuffer
只要使用String的地方都可以使用两者。区别于String一旦确定无法更改,StringBuffer/StringBuilder可以灵活的(指定位置)增加,删除,插入,设置内容。2者构造方法类似,一般单任务访问使用StringBuilder,多任务访问使用StringBuffer.StringBuilder sb1=new StringBuilder();//默认16的字符串生成器 StringBuffer sb2=new StringBuffer(20);//指定容量的字符串生成器 StringBuilder sb3=new StringBuilder(new String("ABCDEF"));//指定字符串的字符串生成器
不同于String,字符串生成器长度属性包括容量capacity()和长度length(),前者表示能够存储的长度,后者表示现存的字符个数,空闲位置设置为null。JVM采用生成器容量自动增加机制。可以使用trimToSize()减少实际存储所需内存。
以下成员函数均完成修改源生成器内容,返回生成器引用。 ❶字符追加函数append(data)/append(data,int start,int end)。 完成追加或者部分追加字符数组或追加基本数据类型(char,boolean,byte,short,int,long,float,double)和String至生成器末尾 ❷字符删除函数delete(int start,int end) 和deleteCharAt(int) 删除一段字符或者指定位置字符 ❸字符插入函数insert() 类似于append(),但最前面添加int参数,表征插入位置 ❹整段替换函数和重新设置指定位置字符 replace(int start,int end,String s)。特定字符串s进行字符串段替换 setCharAt(int,char ch) 重新设置指定位置字符 ❺完全颠倒顺序reverse()和获取子串函数substring(int)/subString(int,int)
判断输入字符是不是回文串,忽略非数字和字母的字符
import java.util.Scanner; public class StudyString { private static Scanner input; public static void main(String[] args) { System.out.println("输入待检测字符"); Scanner input=new Scanner(System.in); StringBuffer sb=filter(input.nextLine()); if((sb.toString()).equals((sb.reverse()).toString())) System.out.println("是回文串"); else System.out.println("不是回文串"); } public static StringBuffer filter(String s)//滤去非字母或者数字的字符 { StringBuffer sb=new StringBuffer(); for(int i=0;i<s.length();i++) if(Character.isLetterOrDigit(s.charAt(i))) sb.append(s.charAt(i)); return sb; } }
相关文章推荐
- Java探索之旅(10)——数组线性表ArrayList和字符串生成器StringBuffer/StringBuilder
- Java中字符串探索----String ,StringBuffer ,StringBuilder及字符串缓存池
- Java中字符串探索----String ,StringBuffer ,StringBuilder及字符串缓存池
- JAVA——(1)基础补充之运算符、字符串、数组、内存分配(String,StringBuffer,StringBuilder的区别
- Java中字符串探索—-String ,StringBuffer ,StringBuilder及字符串缓存池
- 字符串逆序,字符串转为字符数组 、字符串转字节数组,字节数组转字符串、java中String、StringBuffer、StringBuilder
- java代码-----String数组进行排序。是英文的字符串
- 从源代码的角度聊聊java中StringBuffer、StringBuilder、String中的字符串拼接
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
- 黑马程序员 知识点总结-Java String&StringBuffer&StringBuilder
- 字符串数组保存为字符串,arraylist转换成string数组
- 使用java.lang.String和java.lang.BufferString操作字符串
- java StringBuffer,StringBuilder,String自身连接效率对比
- Java JNI使用之将JAVA的 String[ ] 字符串数组转化成C语言的 char** 推荐
- 【java performance】对于常量字符串,用'String' 代替'StringBuffer'
- Java之数据结构基础、线性表、栈和队列、数组和字符串,树—学习笔记
- JAVA学习笔记——字符串操作(String,StringBuffer,StringBuilder)
- Java之美[从菜鸟到高手演变]之数据结构基础、线性表、栈和队列、数组和字符串
- 【编程语言】java--StringBuffer&&StringBuilder
- java中字符串操作string、stringBuffer和stringBuilder的区别以及其相关操作技术