String类中的其他功能:

  替换功能:

 * public String replace(char oldChar,char newChar):将字符串中某一个字符用新的字符替换

 * public String replace(String oldStr,String newStr):将字符串中某一个子字符串用新 的字符                                     串去替代

 * public String trim():去除字符串两端空格:

 

 * public int compareTo(String anotherString)  是Comparable接口中的方法(该接口可以实现一                                  个自然排序)

 * Comparator接口可以比较器排序

package string;public class StringDemo1 {	public static void main(String[] args){		//定义字符串		String str="helloword";		System.out.println(str);				//将原字符串中的字符“l”用“k”替换,		String str1=str.replace("l", "k");		System.out.println(str1);				//将原字符串中的字符串“hello”用“hi——”替换		String str2=str.replace("hello", "hi——");		System.out.println(str2);		System.out.println("----------------");				String str3="  helloword  ";		System.out.println(str3);				//返回字符串的副本,忽略前导空白和尾部空白		String str4=str3.trim();		System.out.println(str4);		System.out.println("----------------");						String str5 ="helloword" ;		String str6="abc";		System.out.println("compareTo():"+str5.compareTo(str));		System.out.println("compareTo():"+str6.compareTo(str));			}}

 * int indexOf(String str):返回指定字符串在此字符串中的一次出现的索引

 * int indexOf(Stirng  str,int fromIndex):返回次字符串中第一次出现指定字符串出的索引,从                              指定索引开始

 * String substring(int start):从指定位置开始截字符串,默认到最末尾

 * String substring(int start,int end):从指定位置开始截取到指定位置结束

package string;import java.util.Scanner;public class StringDemo5 {	public static void main(String[] args){		String str="java";		Scanner sc=new Scanner(System.in);		System.out.println("请你输入一个字符串:");		String str1=sc.nextLine();		System.out.println("你输入的字符串是:"+str1);		System.out.println("----------------");				//从头开始返回java第一次出现的首地址		System.out.println("str1.indexOf(str):"+str1.indexOf(str));//ugfuyjavaojgojjavagfdug		//从指定索引开始		System.out.println("str1.indexOf(str,7 ):"+str1.indexOf(str,7 ));		System.out.println("-------------------");				//从指定位置截取字符串,默认到末尾结束		System.out.println("str1.substring(3):"+str1.substring(3));		//从指定位置截取字符串,到指定位置结束		System.out.println("str1.substring(3,7):"+str1.substring(3,7));							}}

* StringBuffer类

    线程安全的可变字符序列,类似于String的字符串缓冲区

   *开发中线程不安全的话,可能会出现死锁的现象!线程安全和执行效率是相对的

   * 面试题

     *StringBuffer与String的区别?

     *StringBuffer会构造一个字符串缓冲区,从内存角度考虑使用StringBuffer比较多

      String是一个普通的字符串类,从内存角度耗费空间!

      在单线程程序中使用StringBulider(线程不安全)代替StringBuffer

   *StringBuffer中的常用方法

      * 构造方法:

             *public StringBuffer(){ }

              构造一个不带字符的字符串缓冲区,该字符串缓冲区的初始容量为16个字符

             *public StringBuffer(int capacity)

              构造一个不带字符,但具有指定初始容量的字符串缓冲区

             *public StringBuffer(String str)

             构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。该字符串的初               始容量为 16 加上字符串参数的长度。

 

 

             * public int length();获取字符串长度

             * public int capacity():获取当前字符串缓冲区的容量 

    *StringBuffer的添加方法:

             * public StringBuffer append( );向缓冲区追加数据,返回字符串缓冲区本身

             * public StringBUffer insert(int offset,String str):在指定位置添加一个               字符串,返回字符串缓冲区本身

     *StringBuffer的删除方法:

             * public StringBuffer deleteCharAt(int start):删除指定位置的字符,返回                                             字符串缓冲区本身

             * public StringBuffer deleteCharAt(int start,int end):删除从指定位置开                                            始到指定位置结束的字符返回                                            字符串缓冲区本身

 

package stringbuffer;public class StringBufferDemo {	public static void main(String[] args ){		//StringBuffer不可以像String一样直接赋值,可以创建对象利用构造方法赋值		//也可以通过无参构造,调用append();方法进行添加		StringBuffer sb=new StringBuffer();		sb.append("hello");		sb.append("world");		sb.append("-----javase");		System.out.println("添加初始的字符串:"+sb);		sb.insert(5, "-----");		System.out.println("用insert()添加:"+sb);		System.out.println("----------------");				sb.deleteCharAt(3);		System.out.println("删除一个字符后的字符串:"+sb);		System.out.println("----------------");				//当前索引所对应的字符一发生了改变		sb.delete(1, 3);		System.out.println("删除一个小字符串后:"+sb);		System.out.println("----------------");	}}

 

     *StringBuffer和String之间的转换

     *StringBuffer的反转功能:

      public StringBuffer reserve();将字符串顺序直接翻转 

        

package stringbuffer;public class StringBufferDemo1 {	public static void main(String[] args) {	    String str="hello";	    //String----->StringBuffer的转换	    System.out.println("String----->StringBuffer的转换");	    //创建StringBuffer的对象指向这个字符串	    StringBuffer sb=new StringBuffer(str);	    System.out.println("创建StringBuffer的对象指向这个字符串:"+sb);	    	    //使用无参构造,调用append()方法	    StringBuffer sb1=new StringBuffer();	    sb1.append(str);	    System.out.println("使用无参构造,调用append()方法:"+sb1);	    System.out.println("----------------");	    	    //StringBuffer----->String的转换	    System.out.println("StringBuffer----->String的转换");	    //创建缓冲区对象	    StringBuffer sb2=new StringBuffer("world");	    //String有一种构造方法String(StringBuffer str)	    String sb3=new String(sb2);	    System.out.println("构造方法String(StringBuffer str):"+sb3);	    //toString()方法	    String sb4=sb2.toString();	    System.out.println("toString()方法:"+sb4);	    System.out.println("----------------");	    	    //使用StringBuffer的翻转功能将字符串反转“reverse()”	    System.out.println("String类型“hello”使用reverse()翻转后:"+sb2.reverse().toString());	    	    	}}

 

 

     *StringBufferd的替换功能:

      *public StringBuffer replace(int start,int end,String str):从指定位置开始到指定位                                              置用str替换

     *StringBuffer的截取功能:

      *public StringBuffer substring(int start):从指定位置开始到末尾结束,返回一个新的字                                   符串

     *public StringBuffer substring(int start,int end):从指定位置开始到指定位置结束,返                                       回一个新的字符串

 

package stringbuffer;public class StringBufferDemo2 {	public static void main(String[] args){		StringBuffer sb=new StringBuffer();		sb.append("helloworld");		System.out.println("初始字符串:"+sb);		System.out.println("替换后:"+sb.replace(0, 5, "hi-"));		System.out.println("------------------");				//StringBuffer的截取功能		//从指定位置开始截取,默认到结尾结束		System.out.println("从的指定位置往后截取:"+sb.substring(5));	    System.out.println("从指定位置开始到指定位置结束:"+sb.substring(3, 6));	}}

    问题:

    *String、StringBuffer、StringBuleder的区别

    String: 一个不可变的字符序列

    StringBuffer和StringBuleder是可变字符序列,在单线程时优先采用StirngBuleder

   *从线程角度考虑:StringBuleder线程不安全,不同步,执行效率高,比StringBuffer快

    *String和StringBuffer作为形式参数和基本类型是一样的 

 *Integer类

     jdk5.0之后的新特性:自动拆装箱,可变参数……

     每个基本数据类型都会被封装成一个引用类型

     基本类型              引用类型

     int                 Integer

     char                Character

     byte                Byte

     long                Long

     double               Double

     short                Short

     float                Float

     boolean              Blooean

Integer类的构造方式:

   public Integer(int value):将一个int类型的数据封装成一个引用类型

   public Integer(String s):将一个字符数类型封装成一个Integer类型

     该字符串必须是数字字符串否则运行出错:java.lang.NumberFormatException

   

package integer;public class IntegerDemo {		public static void main(String[] args) {		//public static String toBinaryString(int i)		//以二进制无符号数形式返回一个整数参数的字符串表示形式		System.out.println(Integer.toBinaryString(100)) ;				//public static String toOctalString(int i)		//以八进制无符号数形式返回一个整数参数的字符串表示形式		System.out.println(Integer.toOctalString(100));				//public static String toHexString(int i)		//以十六进制无符号数形式返回一个整数参数的字符串表示形式		System.out.println(Integer.toHexString(100));				//public static final int MAX_VALUE		//int类型能够表示的最大值		//public static final int MIN_VALUE		//int类型所能表示的最小值		System.out.println(Integer.MAX_VALUE);//2147483647		System.out.println(Integer.MIN_VALUE);//-2147483647	}}

  

   *int类型和String类型的转换

     *public int intValue();//以int类型返回该Integer的值

     *public static int parseInt(String str);//将字符串参数作为有符号数的十进制整数进行                                 解析

  *Character类

     *在对象中包装一个基本类型char的值,Character类型的对象包含类型为char的字段

     *构造方法:

           public Character(char value)://构造一个新分配的Character对象,来表示制定的                                char的值

     *Character的判断功能和转换功能

         

public static boolean isLowerCase(char ch)确定指定字符是否为小写字母。

     *public static boolenn isUpperCase(char ch)确定指定字符是否为大写字母

     *public static boolean isDigit(char ch)确定指定字符是否为数字。

     *public static char toUpperCase(char ch):将指定字符转换成大写

     *public static char toLowerCase(char ch):将指定字符转换成小写

 

 

package character;public class CharacterDemo {    public static void main(String[] args) {				//public static boolean isLowerCase(char ch)确定指定字符是否为小写字母		System.out.println("isLowerCase:"+Character.isLowerCase('a'));		System.out.println("isLowerCase:"+Character.isLowerCase('A'));		System.out.println("isLowerCase:"+Character.isLowerCase('0'));		System.out.println("---------------------------------------");		//public static boolenn isUpperCase(char ch)确定指定字符是否为大写字母		System.out.println("isUpperCase:"+Character.isUpperCase('a'));		System.out.println("isUpperCase:"+Character.isUpperCase('A'));		System.out.println("isUpperCase:"+Character.isUpperCase('0'));		System.out.println("---------------------------------------");		//public static boolean isDigit(char ch)确定指定字符是否为数字。		System.out.println("isDigit:"+Character.isDigit('a'));		System.out.println("isDigit:"+Character.isDigit('A'));		System.out.println("isDigit:"+Character.isDigit('0'));		}}