Java中字符串与数组,数组与list之间的转化,及字符串处理

18 篇文章 0 订阅

一、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("\n获取字符串索引为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("\n列表长度为:"+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("\n列表长度为:"+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( "\n" ,"")为清除换行等


(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,


Java,你可以使用以下两种方法将字符串转换为字符数组: 方法一:使用String类的toCharArray()方法 这个方法会将字符串的每个字符都转换为一个字符数组的元素。示例代码如下: ```java String str = "Hello"; char[] charArray = str.toCharArray(); ``` 在上面的代码,将字符串"Hello"转换成了字符数组[charArray]。你可以遍历这个字符数组来访问每个字符。 方法二:使用String类的copyValueOf()方法 这个方法可以将字符数组的值拷贝到一个新的字符串。示例代码如下: ```java char[] charArray = {'H', 'e', 'l', 'l', 'o'}; String str = String.copyValueOf(charArray); ``` 在上面的代码,字符数组[charArray]被拷贝到了字符串[str]。 这两种方法都可以将Java字符串转换成字符数组,你可以根据自己的需求选择其一种方法进行使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java怎么把字符串转换成字符数组](https://blog.csdn.net/weixin_44681025/article/details/122992391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java字符串与字符型数组的转换](https://blog.csdn.net/lhllhlhl/article/details/128385190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值