Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找字符串中的重复字符_Java_String_Character - Fatal编程技术网

Java 查找字符串中的重复字符

Java 查找字符串中的重复字符,java,string,character,Java,String,Character,我知道这个问题被问了很多次,但我没有发现任何答案对我的情况有帮助。我有一个接收字符串的方法。我想检查字符串中的任何字符是否重复。如果是这样,该方法将返回一个空字符串。如果没有,它将返回字符串。 该方法正在查找字符串中的任何重复字符 private String visit(String word) { int count = 0; if(word == ""){ return "<empty>"; } //alphabet is an

我知道这个问题被问了很多次,但我没有发现任何答案对我的情况有帮助。我有一个接收字符串的方法。我想检查字符串中的任何字符是否重复。如果是这样,该方法将返回一个空字符串。如果没有,它将返回字符串。 该方法正在查找字符串中的任何重复字符

private String visit(String word) {
    int count = 0;
    if(word == ""){
        return "<empty>";
    }
    //alphabet is an array that holds all characters that could be used in the String
    for(int i = 0; i < alphabet.length; i++){  
        for(int j = 0; j < word.length(); j++){

            if(alphabet[i] == word.charAt(j)){
                count++;
            }
            if(count == 2){                 
                return "";                                              
            }
        }
        count = 0;
    }           
    return word;        
}
私人字符串访问(字符串字){
整数计数=0;
如果(单词==“”){
返回“”;
}
//字母表是一个数组,它包含字符串中可以使用的所有字符
对于(int i=0;i
这可能不是您想要的最佳方式,但您可以使用两个
for
循环来检查每个字符与所有其他字符是否重复

public static String hasRepeated(String word) {
    if (word.isEmpty()) return "<empty>";
    char[] charArray = word.toCharArray();
    for (int i = 0; i < charArray.length; i++) {
        for (int j = 0; j < charArray.length; j++) {
            if (i == j) {
            } else if (Character.toString(charArray[i]).
                    equalsIgnoreCase(Character.toString(charArray[j]))) {
                return "";
            }
        }
    }
    return word;
}
公共静态字符串已重复(字符串字){
if(word.isEmpty())返回“”;
char[]charArray=word.toCharArray();
for(int i=0;i

注意:此代码假定字符的大小写无关紧要,它只是检查字符是否重复。

好的,我发布了以下解决方案:

public static String hasRepeated(String word) {
    if (word.isEmpty()) return "<empty>";
    char[] charArray = word.toCharArray();
    for (int i = 0; i < charArray.length; i++) {
        for (int j = 0; j < charArray.length; j++) {
            if (i == j) {
            } else if (Character.toString(charArray[i]).
                    equalsIgnoreCase(Character.toString(charArray[j]))) {
                return "";
            }
        }
    }
    return word;
}
package main;

import java.util.Arrays;

public class main {

    public static void main(String[] args) {
        System.out.println(hasDups("abc"));
        System.out.println(hasDups("abcb"));
    }

    public static String hasDups(String arg) {
        String[] ar = arg.split("");
        Arrays.sort(ar);
        boolean noDups = true;
        for (int i = 1; i < ar.length && noDups; i++) {
            if (ar[i].equals(ar[i-1])) noDups = false;
        }

        if (noDups) return arg; else return "";
    }
}
packagemain;
导入java.util.array;
公共班机{
公共静态void main(字符串[]args){
系统输出打印LN(hasDups(“abc”);
系统输出打印LN(hasDups(“abcb”);
}
公共静态字符串hasDups(字符串arg){
字符串[]ar=arg.split(“”);
数组。排序(ar);
布尔noDups=true;
对于(int i=1;i
这很有效

public static String checkDuplicate(String str)
{
    int count = 0;

    char[] charArray = str.toCharArray();
    for(int i=0;i<charArray.length;i++)
    {
        count = 0;
        for(int j=0;j<charArray.length;j++)
        {
            if(charArray[i]==charArray[j])
            {

                count++;
                if(count==2) break;
            }
        }
        if(count==2) break;
    }
    if(count==2)
        return "";
    else
        return str;
}
}
publicstaticstringcheckduplicate(stringstr)
{
整数计数=0;
char[]charArray=str.toCharArray();
对于(int i=0;i
/**
*返回重复的第一个字符的索引,如果没有重复,则返回-1
*/
公共静态int firstRepeated(字符串s){
如果(s!=null){
int n=s.长度();
对于(int i=0;i<(n-1);i++){
int indx=s.indexOf(s.charAt(i),i+1);
如果(indx>0){
返回i;
}
}
}
返回-1;
}

我已经创建了一个方法,但它不能正常工作,所以我不会浪费您的时间,将其发布到这里。
除了这是问题的一半。我们需要查看它。请提供一个代码示例。此外,您可以修改所有其他有用的方法,以检查字符串中是否重复字符,从而使用字符串中的一个字符,并只是循环字符串的所有字符OK。您是否创建了任何程序或方法来实现此目的?请共享。您确定字母表包含所有可能的字符吗?请查看我的答案,正则表达式可以根据您的需要轻松调整
String
Have method
toCharArray()
你可以用它来代替
split
why-1??你甚至运行过这个代码吗?!它工作得非常好。