题目描述
找出字符串中第一个只出现一次的字符
输入描述:
输入一个非空字符串
输出描述:
输出第一个只出现一次的字符,如果不存在输出-1
示例1
输入
asdfasdfo
输出
o
实现代码:
- 方法一:
package cn.c_shuang.demo56;
import java.util.Scanner;
/**
* 找出字符串中第一个只出现一次的字符
* @author Cshuang
* */
public class Main {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(in.hasNext()){
String s=in.next();
for (int i = 0; i < s.length(); i++) {
String beforeTemp = null;
String afterTemp = null;
beforeTemp=s.substring(0,i);
afterTemp=s.substring(i+1);
if(!beforeTemp.contains(String.valueOf(s.charAt(i)))&&
!afterTemp.contains(String.valueOf(s.charAt(i)))){
System.out.println(s.charAt(i));
break;
}
if(i==s.length()-1){
System.out.println(-1);
}
}
}
in.close();
}
}
- 方法二:
思路:向前寻找(indexOf)与向后查找(lastIndexOf)的第一个字符所在位置相等,即说明该点是第一次出现的点
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
char[] cs = str.toCharArray();
for(int i = 0; i < cs.length; i++){
if(str.indexOf(cs[i]) == str.lastIndexOf(cs[i])){
System.out.println(cs[i]);
break;
}
if(i==cs.length-1){
System.out.println(-1);
}
}
}
sc.close();
}
}