Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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_Input_Letters And Numbers - Fatal编程技术网

Java重复字母检入字符串

Java重复字母检入字符串,java,input,letters-and-numbers,Java,Input,Letters And Numbers,我不知道如何检查用户输入的重复字母。程序需要将重复的字母输出为true,若并没有,则输出为false。程序不应重复计算数字或符号 例如: 用户输入:巧克力程序输出:真 用户输入:程序输出:False 试试这个: String username ; char[] x = username.toCharArray(); boolean duplicates=false; for (j=0;j<x.length;j++) for (k=j+1;k&l

我不知道如何检查用户输入的重复字母。程序需要将重复的字母输出为true,若并没有,则输出为false。程序不应重复计算数字或符号

例如:

  • 用户输入:巧克力
    程序输出:真

  • 用户输入:程序输出:False

试试这个:

    String username ;
    char[] x = username.toCharArray();
    boolean duplicates=false;
    for (j=0;j<x.length;j++)
      for (k=j+1;k<x.length;k++)
        if (x[k] == x[j])
          duplicates=true
字符串用户名;
char[]x=username.toCharArray();
布尔重复=假;
对于(j=0;j试试这个:

    String username ;
    char[] x = username.toCharArray();
    boolean duplicates=false;
    for (j=0;j<x.length;j++)
      for (k=j+1;k<x.length;k++)
        if (x[k] == x[j])
          duplicates=true
字符串用户名;
char[]x=username.toCharArray();
布尔重复=假;
对于(j=0;j
private静态布尔检查(字符串输入){
Set tmp=new HashSet();
for(char ch:input.toCharArray()){
if(Character.isleter(ch)和&!tmp.add(ch)){
返回true;
}
}
返回false;
}
私有静态布尔检查(字符串输入){
Set tmp=new HashSet();
for(char ch:input.toCharArray()){
if(Character.isleter(ch)和&!tmp.add(ch)){
返回true;
}
}
返回false;
}

这是另一个版本,基于@rell的答案,但没有创建
哈希集或
字符[]

private static boolean check(String input) {
    for (int i = 0; i < input.length(); i++) {
        char ch = input.charAt(i);
        if (Character.isLetter(ch) && input.indexOf(ch, i + 1) != -1) {
            return true;
        }
    }
    return false;
}

更新修复了流版本中的错误

这是另一个版本,基于@rell的回答,但没有创建
HashSet
char[]

private static boolean check(String input) {
    for (int i = 0; i < input.length(); i++) {
        char ch = input.charAt(i);
        if (Character.isLetter(ch) && input.indexOf(ch, i + 1) != -1) {
            return true;
        }
    }
    return false;
}

更新修复了流版本中的错误

我们可以使用它简化为单循环

    boolean checkDuplicates(char[] x)
    {
     Set<char> xSet = new HashSet<char>();
       for (char c : x)
       {
        if (xSet.contains(c)) return true;
        xSet.add(i);
       }
     return false;
    }
布尔校验重复项(char[]x)
{
Set xSet=newhashset();
用于(字符c:x)
{
if(xSet.contains(c))返回true;
xSet.add(i);
}
返回false;
}

我们可以使用此功能简化为单循环

    boolean checkDuplicates(char[] x)
    {
     Set<char> xSet = new HashSet<char>();
       for (char c : x)
       {
        if (xSet.contains(c)) return true;
        xSet.add(i);
       }
     return false;
    }
布尔校验重复项(char[]x)
{
Set xSet=newhashset();
用于(字符c:x)
{
if(xSet.contains(c))返回true;
xSet.add(i);
}
返回false;
}
1.)对字符数组进行排序

2.)遍历数组,查看第i个值是否==(i+1)个值。如果发现任何错误,请返回false。否则,返回true

时间复杂度:O(nlogn)(用于排序)

空间复杂度:O(1)

1。)对字符数组进行排序

2.)遍历数组,查看第i个值是否==(i+1)个值。如果发现任何错误,请返回false。否则,返回true

时间复杂度:O(nlogn)(用于排序)


空间复杂度:O(1)

我们需要查看源代码您可以使用哈希集存储已出现的字母。提示:您可以通过调用
character.isleter(ch)
来判断字符是否为字母。这可能会为您指明正确的方向。使用正则表达式检测连续字母我们需要查看源代码您可以使用哈希集存储已出现的字母。提示:您可以通过调用
character.isleter(ch)
来判断字符是否为字母。这可能会为您指明正确的方向。基于正则表达式的连续字母检测