• Java探索之旅(10)——数组线性表ArrayList和字符串生成器StringBuffer/StringBuilder


    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;
    	}
    }


  • 相关阅读:
    未来所有的公司,都将成为互联网公司
    万达数字化管理体系
    架构图都画啥
    历经60年,数据库的王者终于出现了
    从智慧社区产品入手,阐述ToG产品的一些设计要点
    黑科技感爆棚的可视化大屏
    数据库编程——Oracle环境配置
    IO系列测试源码
    IO异步,读写压缩文件,监控文件系统
    StreamReader & StreamWriter
  • 原文地址:https://www.cnblogs.com/engineerLF/p/5393090.html
Copyright © 2020-2023  润新知