Java字符串反转以及数组集合转换的方法

基础简述

1.String,Char,Array,List简述

Char字符,可以理解为看见的元素即为字符,char在java中表示单个字符,一个字母一个数字一个汉一个符号都可以是字符,汉字占的的字节数为2。
String字符串,简单理解即一串拼接在一起的字符,在Java中为常量,不可修改
Array不可变数组,在Java中数组是不可变的,Array不是关键字,Java中写法为: String[] arr;
List可变数组,可变数组,在Java中为一个接口,其典型实现类为ArrayList,有序列表。

2.String,StringBuffer,StringBuilder简述以及区别

StringBuffer,是可以存储和操作字符串,即包含多个字符的字符串数据。
String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。

StringBuilder 类是 JDK 1.5 新增的类,它也代表可变字符串对象。实际上,StringBuilder 和 StringBuffer 功能基本相似,方法也差不多。不同的是,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此在通常情况下,如果需要创建一个内容可变的字符串对象,则应该优先考虑使用 StringBuilder 类。

总结String不可变,高效用StringBuilder,安全使用StringBuffer

一.最简单的题目字符串反转

四种解法:
1,利用字符串的拼接(charAt()方法),把后遍历出来的放在前面即可实现反转

public static String charAtReverse (String s){
   int length = s.length();
   String reverse = " ";
   for (int i = 0; i < length; i++) {
    reverse = s.charAt(i)+reverse;//字符串中获取单个字符的字符的放法
   }
   return reverse;
  }

2,利用字符串的拼接(toCharArray()处理成字符数组的方法),把后遍历出来的放在前面即可实现反转

public static String reverseCharArrays(String s){
   char []array = s.toCharArray();//把字符串分割成单个字符的数组
   String reverse = "";
   for(int i = array.length -1 ; i>=0 ; i--){//遍历数组,从后向前拼接
    reverse +=array[i];
   }
   return reverse;
  }

3,利用StringBuffer的reverse()方法

public static String reverseStringBuffer(String s){
   StringBuffer sb = new StringBuffer(s);
   String afterReverse = sb.reverse().toString();
   return afterReverse;
  }

4,利用递归的方法,类似与二分查找的折半思想(substring截取包左不包右)

public static String reverseRecursive(String s){
   int length = s.length();
   if(length<=1){
    return s; 
   }
   String left  = s.substring(0,length/2);
   String right = s.substring(length/2 ,length);
   String afterReverse = reverseRecursive(right)+reverseRecursive(left);//此处是递归的方法调用
   return afterReverse;
   }

二.数组和List间的转换

Java的Util包里面有提供相关方法:

//转list,注意此方法转出的list,不可再进行add或者是remove
Arrays.asList(T... t);
//注意此处的list即需转换的集合对象
list.toArray();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值