java获取字符串中只呈现一次的字符ITeyecsdn - 娱乐之横扫全球

java获取字符串中只呈现一次的字符ITeyecsdn

2018-09-19 07:06:34 | 作者: 怀瑶 | 标签: 字符,字符串,办法 | 浏览: 8133

今日搭档俄然问我怎样打印出一个字符串中只呈现一次的字符,百度出来的办法如下:
public class Test17 {
/**
* 查找字符串中只呈现一次的字符
* @param s
* @return
*/
  public static char firstOne(String s) 
  { 
  char result = 0; 
  char temp; 
  int[] num = new int[52];  //大小写字母个数之和
  for (int i = 0; i s.length(); i ++) 
  { 
  temp = s.charAt(i);  //取源字符串中的字符
  if ( temp = a temp = z )  //字符为小写字母的状况
  { 
  num[temp - a]++;  //记载字符呈现次数,每呈现一次对应数组中的元素自增1
  } 
  else  //字符为大写字母的状况
  if (temp = A temp = Z) 
  { 
  num[temp - A + 26] ++;  //记载字符呈现次数,每呈现一次对应数组中的元素自增1
  } 
  } 
  for (int i = 0; i num.length; i ++) 
  { 
  if (num[i] 1)//数组中元素等于1 时,表明在方针字符串中只呈现一次
  { 
  if (i = 0 i =26)  //为小写字母
  { 
  result = (char)(i + a); 
  } 
  else  //为大写字母
  result = (char)(i - 26 + A); 
  break; 
  } 
  } 
  return result; 
  } 
  public static void main(String[] args) { 
  String s = "abaccdeffF"; 
  char c = firstOne(s); 
  System.out.println(c); 
  } 
}
ps:这办法是找出在字符串中呈现一次的榜首个字符,而且字符串中呈现数字和汉字时找不出来。

搭档给出的解决办法:(能够包括数字、汉字、特别字符)
public class Test18 {

public static void main(String[] args) {
  String s = "adfadfadsfasdfwWswG";
  String temp = "";
  for (int j = 0; j s.length(); j++) {
  temp = s.substring(j,j+1);
  for (int i = 0; i s.length(); i++) {
  if(j!=i temp.equals(s.substring(i,i+1))){
  temp = "";
  break;
  }
  }
  if(!temp.equals("")){
  System.out.println(temp);
  //break;
  }
  }
}
}
ps:留意办法中赤色注释的代码,假如去掉后则是找出字符串中只呈现一次的一切字符,铺开注释后则是找出呈现一次的榜首个字符。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章