Java中字符串与数组,数组与list之间的转化,及字符串处理
一、Java中字符串与数组之间的转化
(1)字符串-》数组
- 如果字符串中间有分隔符,比如“,”或者“ ”(空格)就可以利用分隔符来对字符串进行分隔,转化为数组;
举例:
String str = "1,2,3,4,5,6,7"; String[] array = str.split(","); System.out.println("字符串转化为数组:"); for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); }
输出为:
字符串转化为数组: 1 2 3 4 5 6 7
- 如果字符串中间没有分隔符,可以直接使用toCharArray()函数转化为Char型的数组,并且可以使用charAt(int index)获取字符串中索引为index的字符;
- 也可以使用String[] array = str.split("");得到同样的结果,不过得到的是String型的数组:
举例:
String str = "oanvqo123"; String[] array = str.split(""); System.out.println("字符串转化为数组:"); for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); } System.out.println(" 获取字符串索引为5的字符:"); System.out.println(str.charAt(5));
输出为:
字符串转化为数组: <pre name="code" class="html">o a n v q o 1 2 3 获取字符串索引为5的字符: o
(2)数组-》字符串
- 可以使用Arrays类的toString()方法,可以直接将多种类型的数组转化为字符串,但toString()方法是带格式的,也就是{"a","b","c"}说输出的是[a, b, c]:
举例:
String[] array = {"123","abc","xyz","666"}; String s = Arrays.toString(array); System.out.println("将数组直接转化为字符串的格式:"); System.out.println(s); StringBuilder build = new StringBuilder(); for (int i = 0; i < array.length; i++) { build.append(array[i]); } System.out.println("将数组经过处理后得到的字符串格式:"); System.out.println(build);
输出为:
将数组直接转化为字符串的格式: [123, abc, xyz, 666] 将数组经过处理后得到的字符串格式: 123abcxyz666
- 如果是Char型数组的话,仅仅想输出abc则可以用以下两种方法:
char[] array = {"1","2","3","a","b","c"}; String s = Arrays.toString(array); System.out.println("将数组直接转化为字符串的格式:"); System.out.println(s); s = new String(array); System.out.println("将Char型数组转化字符串方法一:"); System.out.println(s); s = String.valueOf(array); System.out.println("将Char型数组转化字符串方法二:"); System.out.println(s);
输出为:
将数组直接转化为字符串的格式: [1, 2, 3, a, b, c] 将Char型数组转化字符串方法一: 123abc 将Char型数组转化字符串方法二: 123abc
二、java中数组与List之间的转化
(1)数组-》List
- 可以直接使用Arrays类中的asList()方法,将数组转化为List,但是List不像ArrayList类一样,不能进行添加和移除操作,因为ArrayList类继承了List接口,并且重写了里面的抽象方法:
举例:
String[] array = {"123","abc","xyz","666"}; List<String> list = Arrays.asList(array); System.out.println("数组转化为列表:"); for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i)+" "); }
输出为:
数组转化为列表: 123 abc xyz 666
- 也可以通过向ArrayList类中添加数组元素实现:
举例:
String[] array = {"123","abc","xyz","666"}; ArrayList<String> list = new ArrayList<>(); System.out.println("数组转化为列表:"); for (int i = 0; i < array.length; i++) { list.add(array[i]); System.out.print(list.get(i)+" "); } System.out.println(" 列表长度为:"+list.size()); list.remove(3); System.out.println("移除索引为3的值后,列表为:"); for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i)+" "); } System.out.println(" 列表长度为:"+list.size());
输出为:
数组转化为列表: 123 abc xyz 666 列表长度为:4 移除索引为3的值后,列表为: 123 abc xyz 列表长度为:3
(2)List-》数组
- List,ArrayList中都有toArray()方法,可以将链表转化为数组,这里需要注意的是:toArray()方法内的如果没有参数返回的是object类型数组,如果要为string类型,则需要加:new String[list.size()];
ArrayList<String> list = new ArrayList<>(); list.add("abc"); list.add("123"); list.add("zxy"); String[] array = list.toArray(new String[list.size()]); System.out.println("列表长度为:"+list.size()); System.out.println("将列表转化为数组:"); for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); }
输出为:
列表长度为:3 将列表转化为数组: abc 123 zxy
三、字符串处理方法
(1)字符串去空格
- String.trim()是去掉首尾空格
- str.replace(" ", ""); 去掉所有空格,包括首尾、中间
或者replaceAll(" +",""); 去掉所有空格
代码如下:String str = " hell o "; String str2 = str.replaceAll(" ", ""); System.out.println(str2);
- str = .replaceAll("\s*", ""); replaceAll( " " ,"")为清除换行等
(2)对字符串进行处理时,可以利用StringBuild类进行处理之后,再转化为String类型
- 举例:数据之间以逗号“,”分隔,存储在字符串中,实现去掉重复的数据,并且将最新的数据保存在字符串的最后;
//实现最近浏览商品ID存储(ID已经存在的,把原来位置的去掉,在最后重新加入;原来不存在的则直接在最后加入) public static String save(String s,String id){ //这里还应该判断商品ID是否已经存在于list当中,如果存在,则删除原来ID,在最后添加上商品ID StringBuilder list = new StringBuilder(); for (int i = 0; i < s.length(); i++) { list.append(s.charAt(i)); } int index = list.indexOf(id); if(index != -1){ list.delete(index,index+2); } list.append(id+","); s = list.toString(); return s; }
验证结果:
String s = "1,2,3,4,"; System.out.println("原来的字符串:"+s); String id = "2"; s = save(s,id); System.out.println("添加重复ID后的字符串:"+s); id = "6"; s = save(s,id); System.out.println("添加没有重复ID后的字符串:"+s);
输出为:
原来的字符串:1,2,3,4, 添加重复ID后的字符串:1,3,4,2, 添加没有重复ID后的字符串:1,3,4,2,6,
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。