本篇总结归纳对字符串或数组进行相关操作问题
- 数组倒序输出
- 查找字符串中第一次重复的字符
- 查找字符串中第一次没有重复的字符
- 删除字符串中重复的元素
倒序输出问题
第一种:对于数组
public int[] ArrayReverse(int[] a){ int len = a.length; int[] b = new int[len-1]; //新建数组用于保存倒序后的数组 for(int i=len-1;i>=0;i--){ b[len-1-i] = a[i]; } return b;}
第二种:对于字符串我们可以把它转化成字符数组,在采用for循环来做,或者将字符串转换成StringBuffer,利用StringBuffer的reverse方法
//for循环输出public String ArrayReverse(String s){ char[] c = s.toCharArray(); for(int i = c.length-1; i>=0; i++){ String rev += c[i]; } return rev;}
//StringBuffer操作public String ArrayReverse(String s){ StringBuffer sb = new StringBuffer(s); sb.revese(); String newS = sb.toString(); return newS;}
查找字符串中第一次重复的字符
//查找字符串中第一次重复的字符public int FindFirstDupChar(String str) { int i; for (i = 0; i < str.length(); i++) { if( str.indexOf(str.charAt(i), i+1) != -1) { return i; } } if (i == str.length()) { return -1; } return i; //返回第一次重复的字符位置}
查找字符串中第一次没有重复的字符
public int FindFirstSingleChar(String str){ int i; for(i = 0; i
删除字符串中重复的元素
第一种:通过list集合的contains方法
//删除字符串中重复的元素public String deleteDupChar(String str){ List list = new ArrayList(); char[] c = str.toCharArray(); for(int i = 0; i
第二种:利用Set集合中不能添加重复元素的特性
public String deleteDupChar(String str){ char[] c = str.toCharArray(); Set s = new HashSet(); for(int i = 0;i