高手帮忙 给定一个字符串,要求写一个函数来求出这个字符串里面第一个重复的字符,例如字符串"abcda",第一个重复的字符是a。abcdba,第一个重复的字符是b,希望能用java给个完整答案,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.util.HashSet;public class Test{ public static void main(String[] args) { HashSet<Character> hs = new HashSet<Character>(); String test = "asfdsfa"; char[] arr = test.toCharArray(); for(int i = 0; i < arr.length; i++) { if(!hs.add(arr[i])) { System.out.println("index:" + i + " ,value:" + arr[i]); return; } } }} package cn.sky;import java.util.HashMap;import java.util.Map;public class Test { public static void main(String[] args) throws Exception { // 说明:请使用至少1.5的jdk/jre ,并开启自动封装模式+范型模式 String str = "abcdba"; Map<Character, Integer> maps = new HashMap<Character, Integer>(); int length = str.length();// 为不了每次都调用str的length方法,这里用个临时变量保存起来 Character tempChar;// 字符 Integer tempNumber;// 字符之前出现的次数 for (int i = 0; i < length; i++) { tempChar = str.charAt(i); tempNumber = maps.get(tempChar); if (tempNumber == null) {// 为空,说明还没有该字符的重复,将其之前出现的次数设置为0。 tempNumber = 0; } if (++tempNumber == 2) {// 如果重复出现的话,其次数至少是2次。之后的运行就没必要了 System.out.println("第一次出现的重复字符是:" + tempChar); return; } maps.put(tempChar, tempNumber);// 将出现的字符及其数目保存起来。 } }} //简单代码如下,没有调试过//你可以根据实际需求更改,比如考虑大小写....int[] counts = new int[26];for(int i = 0; i < 26 ; i++) counts[i] = 0;for(int i = 0; i < str.length(); i++) counts[str.charAt(i)-'a'] ++;for(int i = 0; i < str.length(); i++){ if(counts[str.charAt(i)-'a'] > 1) return str.charAt(i);} public static void checkRepeatChar(String inputString) { char[] chars = inputString.toCharArray(); char repeatChar = ' '; for (int i = 0; i < chars.length; i++) { for (int j = i+1; j < chars.length; j++) { if (chars[i] == chars[j]) { repeatChar = chars[i]; break; } } if (repeatChar != ' ') { break; } } if(repeatChar != ' ') System.out.println("第一个重复的是:" + repeatChar); else System.out.println("没有重复的字符"); } 不好意思格式乱了。我是直接copy在回复里的。写的时候格式是好的,不知道为什么一回复就乱了。 public static void main(String[] args){ Scanner input = new Scanner(System.in) ; System.out.print("请输入第一个字符:"); String a1 = input.nextLine() ; char [] chars = a1.toCharArray() ; char charTemp = ' ' ; for(int i=0 ; i<chars.length ; i++){ //System.out.println(chars[i]); for(int j=i+1 ; j<chars.length ; j++){ if(chars[i]==chars[j]){ charTemp=chars[i] ; break ; } } if(charTemp!= ' '){ break ; } } if(charTemp!= ' '){ System.out.println("第一个重复的是:" + charTemp) ; }else{ System.out.println("没有重复的!"); } } Applet的getAppletContext().showDocument()参数隐藏问题 企业学要的java程序员? 一个JEditPane,想在其左边加一个列显示行数,给点思路? 请教:如何播放wav格式的音频。。。。 谁有Thinking in Java第3版的源代码,发个给我好吗?我有FTP。谢谢 简单问题:在网页中加声音的困惑... 求高手详细讲解一下java的动态绑定机制。谢谢 测试分 关于RMI的安全策略的问题,如果要从服务器下载所用的类,策略文件该怎么写??? 新手求助,希望各位能帮帮忙 myeclipse 数据库查询中文结果乱码 java全局代码区在内存中什么位置?
{
public static void main(String[] args)
{
HashSet<Character> hs = new HashSet<Character>();
String test = "asfdsfa";
char[] arr = test.toCharArray();
for(int i = 0; i < arr.length; i++)
{
if(!hs.add(arr[i]))
{
System.out.println("index:" + i + " ,value:" + arr[i]);
return;
}
}
}
}
package cn.sky;import java.util.HashMap;
import java.util.Map;public class Test {
public static void main(String[] args) throws Exception {
// 说明:请使用至少1.5的jdk/jre ,并开启自动封装模式+范型模式
String str = "abcdba";
Map<Character, Integer> maps = new HashMap<Character, Integer>();
int length = str.length();// 为不了每次都调用str的length方法,这里用个临时变量保存起来
Character tempChar;// 字符
Integer tempNumber;// 字符之前出现的次数
for (int i = 0; i < length; i++) {
tempChar = str.charAt(i);
tempNumber = maps.get(tempChar);
if (tempNumber == null) {// 为空,说明还没有该字符的重复,将其之前出现的次数设置为0。
tempNumber = 0;
}
if (++tempNumber == 2) {// 如果重复出现的话,其次数至少是2次。之后的运行就没必要了
System.out.println("第一次出现的重复字符是:" + tempChar);
return;
}
maps.put(tempChar, tempNumber);// 将出现的字符及其数目保存起来。
}
}
}
//你可以根据实际需求更改,比如考虑大小写....
int[] counts = new int[26];
for(int i = 0; i < 26 ; i++)
counts[i] = 0;for(int i = 0; i < str.length(); i++)
counts[str.charAt(i)-'a'] ++;for(int i = 0; i < str.length(); i++){
if(counts[str.charAt(i)-'a'] > 1)
return str.charAt(i);
}
char[] chars = inputString.toCharArray();
char repeatChar = ' ';
for (int i = 0; i < chars.length; i++) {
for (int j = i+1; j < chars.length; j++) {
if (chars[i] == chars[j]) {
repeatChar = chars[i];
break;
}
}
if (repeatChar != ' ') {
break;
}
}
if(repeatChar != ' ')
System.out.println("第一个重复的是:" + repeatChar);
else
System.out.println("没有重复的字符");
}
Scanner input = new Scanner(System.in) ;
System.out.print("请输入第一个字符:");
String a1 = input.nextLine() ;
char [] chars = a1.toCharArray() ;
char charTemp = ' ' ;
for(int i=0 ; i<chars.length ; i++){
//System.out.println(chars[i]);
for(int j=i+1 ; j<chars.length ; j++){
if(chars[i]==chars[j]){
charTemp=chars[i] ;
break ;
}
}
if(charTemp!= ' '){
break ;
}
}
if(charTemp!= ' '){
System.out.println("第一个重复的是:" + charTemp) ;
}else{
System.out.println("没有重复的!");
}
}