代码及其说明如下 代码不是很长 希望楼主满意
import java.util.Scanner;
import java.util.TreeSet;
public class TheFirstChar {
public static void main(String[] args) {
System.out.println("请输入一串英文字符串:");
Scanner s = new Scanner(System.in);
String str = s.nextLine();
char[] ch = str.toCharArray();
TreeSet
int k = 0; // 中间参数
char cha = ',';// 传值参数
for (int i = 0; i < ch.length - 1; i++) {
if (ts.add(ch[i])) { // 判断是否出现过
for (int j = i + 1; j < ch.length; j++) {
if (ch[i] == ch[j]) {// 判断在后续中是否出现
break; // 出现退出循环
}
k = j + 1; // 否则参数为j+1
}
} else if (k == ch.length) {// 当k=ch.length时表明内循环结束且
//不是break结束的,此时为第一个出现的且只有一个的数
System.out.println("原来的数据为:" + str);
System.out.println("第一次出现并且不重复的数为:" + ch[i]);
cha = ch[i];
break;
}
}
if (cha == ',') { //判断所求值是否出现
if (ts.add(ch[ch.length - 1])) {// 判断最后一个字符是不是重复的
System.out.println("原来的字符串为:" + str); // 判断是不是最后一个
System.out.println("第一次出现并且不重复的数为:" + ch[ch.length - 1]);
} else {
System.out.println("字符串中不存在这样的字符!!");
}
}
}
}
//实测OK~~
//FirstChar.java
public class FirstChar {
public static void main(String[] args) {
String s = "abacbc";
boolean o=false;
for(int i=0; i
if(s.indexOf(c)==i&&s.lastIndexOf(c)==i){
o=true;
System.out.println("输入:"+s+",输出:"+c);
break;
}
}
if(!o){
System.out.println("输入:"+s+",并未找到只出现一次的字符.");
}
}
}
是否还要判断是不是全部都是小写英文字母?如果是,程序如下:
import java.util.Scanner;
public class sky {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please input the string:");
String s = scan.nextLine();
if(!s.matches("^[a-zA-Z]*$")){
System.out.println("Not all letters.");
System.exit(-1);
}
boolean flag = false;
for(int i=0;i
if(s.indexOf(c)==i&&s.lastIndexOf(c)==i) {
System.out.println(c);
System.exit(0);;
}
}
System.out.println("No appropriate letter.");
}
}
//FirstChar.java
public class FirstChar {
public static void main(String[] args) {
String s = "abacbcdeefdhgi";
for(int i=0; i
if(s.indexOf(c)==i&&s.lastIndexOf(c)==i){
System.out.println("输入:"+s+",输出:"+c);
break;
}
}
}
}
此位仁兄的是正解。给他分吧
String str= "abbacddeud";
for(int i=0;i
if(str.indexOf(cStr,str.indexOf(cStr)+1)== -1){
System.out.println(cStr);
break;
}
}