StringBuffer,数组排序,Arrays,Character

本文深入讲解了Java中的StringBuffer类,包括构造方法、常用功能及其与String和StringBuilder的区别。此外,还介绍了数组的高级操作、Arrays工具类的使用、Integer类的特性以及Character类的相关方法。
1.StringBuffer1)用字符串做拼接比较耗时耗空间,为了解决这个问题,Java提供了一个字符串缓冲区类。
        (2)StringBuffer构造方法
       	 	A:StringBuffer()
        	B:StringBuffer(int Size)
        	C:StringBuffer(String str)
        (3)StringBuffer的常见功能
        A:添加功能
		public StringBuffer append(String str)
		public StringBuffer insert(int offset,String str)
        B:删除功能
		public StringBuffer deleteCharAt(int index)
		public StringBuffer delete(int start,int end)
        C:替换功能
		public StringBuffer replace(int start,int end,String str)
        D:反转功能
		public StringBuffer reverse()
        E:截取功能
		public StringBuffer subString(int start)
		public StringBuffer subString(int start,int end)
        (4)String和StringBuffer的转换
       		 String-StringBuffer(构造方法)
        	StringBuffer-String(toString()方法)
        (5)小问题
        	A:String,StringBuffer,StringBulider的区别
        		String内容是不可变的,其余两个内容是可变的,StringBuffer是可同步的,效率低,			但是安全,StringBuilder是不同步的,数据不安全,但是效率高。
        B:StringBuffer和数组的区别
        		二者都可以看作是一个容器,StringBuffer最终装的是一个字符串数据,但是数组可以			放置多种数据,但必须是同一种数据。
        (6)StringBuffer和String作为形参传递问题
        String作为形式参数传递,就和普通类型一样,在方法中改变值但是在main中并没有改变,StringBuffer作为形参时,做赋值运算和String一样,相当于普通类型,但是做追加删除等操作时,就和引用类型是一样的,会改变在main方法中的值。

2.数组高级以及Arrays
1)排序
        a.冒泡排序
		public static void buddlesort(int[] arr)
       		 for(int x=0 ; x<arr.length-1 ; x++){
       		 for(int y=0 ; y<arr.length-1-x ; y++ )
       		 	{
       			 if(arr[y] > arr[y+1]){ 交换arr[y]和arr[y+1]}
       		 	}
       		 }
        b.选择排序
		public static void buddlesort(int[] arr)
       		 for(int x=0 ; x<arr.length-1 ; x++){
       			 for(int y=x+1 ; y<arr.length ; y++ )
       			 {
       			 if(arr[x] > arr[y]){ 交换arr[x]和arr[y]}
       			 }
       		 }
        (2)查找
        	a.基本查找(针对数组有序)
       		 b.二分查找(针对数组有序)
        (3)Arrays工具类
        a.把数组转成字符串
		public static String(int[] a)
        b.排序
		public static sort(int[] a)
        c.二分查找
		public int binarySearch(int[] a,int key)
        (4)把字符串中的字符进行排序
       首先将字符串转化成数组(Strig.toCharArray()),利用sort进行排序,再将排序后的数组转化		成字符串	(String的构造方法)。
3.Integer1)Integer的构造方法
       		 Integer i = new Integer(int i);
        	Integer i= new Integer(String str);
        (2)int和String的相互转换
        A:String-int
        Integer.parseInt(String str);
        B:int-String
        String.value(int i);
        (3)其他进制的转化
        A.十进制到其他进制(2-36)
public static String toString(int i,int radix)
        B.其他进制到十进制
public static int parseInt(String s,int radix)

        (4)JDK5的新特性
        自动装箱   基本类型--引用类型
        自动拆箱   引用类型--基本类型

        把下面的这个代码理解即可:
        Integer i = 100;
        i += 200;
        (5)面试题
        -128到127之间的数据缓冲池问题
4.Character
        (1)Character构造方法
        Character ch = new Character('a');
        (2)要掌握的方法:
        A:判断给定的字符是否是大写
		public static bolean isUppperCase(char ch)
        B:判断给定的字符是否是小写
		public static bolean isLowerCase(char ch)
        C:判断给定的字符是否是数字字符
		public static bolean isDigit(char ch)
        D:把给定的字符转成大写
		public static char toUppperCase(char ch)
        E:把给定的字符转成小写
		public static char toLowerCase(char ch)
        (3)案例:
        统计字符串中大写,小写及数字字符出现的次数
在Java中,你可以通过以下几个步骤实现这个功能: 1. **读取用户输入**: 使用`Scanner`类从控制台获取用户的输入,例如: ```java Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字符串:"); String userInput = scanner.nextLine(); ``` 2. **移除重复字符**: 使用`StringBuilder`或`StringBuffer`,它们提供了一个`remove()`方法可以删除指定位置的字符。这里我们遍历字符串,将非重复字符添加到新的字符串中: ```java StringBuilder uniqueChars = new StringBuilder(); for (char c : userInput.toCharArray()) { if (!uniqueChars.toString().contains(String.valueOf(c))) { uniqueChars.append(c); } } String noDuplicates = uniqueChars.toString(); ``` 3. **排序字符**: 使用`Character`类的`compareTo()`方法对字符进行自然排序。创建一个新的`char[]`数组,然后使用`Arrays.sort()`方法对其进行排序: ```java char[] sortedChars = noDuplicates.toCharArray(); Arrays.sort(sortedChars); ``` 4. **显示结果**: 最后,将排序后的字符转换回字符串并打印出来: ```java String sortedAndUniqueString = new String(sortedChars); System.out.println("去除重复并排序后的字符串: " + sortedAndUniqueString); ``` 完整的示例代码如下: ```java import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字符串:"); String userInput = scanner.nextLine(); StringBuilder uniqueChars = new StringBuilder(); for (char c : userInput.toCharArray()) { if (!uniqueChars.toString().contains(String.valueOf(c))) { uniqueChars.append(c); } } String noDuplicates = uniqueChars.toString(); char[] sortedChars = noDuplicates.toCharArray(); Arrays.sort(sortedChars); String sortedAndUniqueString = new String(sortedChars); System.out.println("去除重复并排序后的字符串: " + sortedAndUniqueString); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值