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

Java 使用递归查找给定字符串中的最小字符

Java 使用递归查找给定字符串中的最小字符,java,recursion,Java,Recursion,我必须编写一个方法,返回给定字符串中的最小字符(使用ASCII序列)。示例minChar(“你好”);应该返回“e” 目前我正在尝试运行minChar(“hello”,0)。我的想法是,它将从h(h

我必须编写一个方法,返回给定字符串中的最小字符(使用ASCII序列)。示例minChar(“你好”);应该返回“e”

目前我正在尝试运行minChar(“hello”,0)。我的想法是,它将从h(h<~)开始设置c=h,然后调用minChar(“hello”,1),分配c=e,等等,在最后返回“e”之前比较字母,因为这是最小值。我错过了什么

public static char minChar(String x, int z){
    char c = '~';
    while(z < x.length()){
        if(x.charAt(z) < c){
            c = x.charAt(z);
        }
        minChar(x, z+1);
    }
    return c;
}
publicstaticcharminchar(字符串x,intz){
字符c='~';
而(z
您没有使用从
minChar()
返回的内容。使用它

public static char minChar(String x, int z){
    char c = '~';
    if(z < x.length()){
        if(x.charAt(z) < c){
            c = x.charAt(z);
        }
        char candidate = minChar(x, z+1); // add assignment
        if (candidate < c) c = candidate; // add update
    }
    return c;
}
publicstaticcharminchar(字符串x,intz){
字符c='~';
如果(z
您没有使用从
minChar()
返回的内容。使用它

public static char minChar(String x, int z){
    char c = '~';
    if(z < x.length()){
        if(x.charAt(z) < c){
            c = x.charAt(z);
        }
        char candidate = minChar(x, z+1); // add assignment
        if (candidate < c) c = candidate; // add update
    }
    return c;
}
publicstaticcharminchar(字符串x,intz){
字符c='~';
如果(z
试试下面的代码,它适合我:

public  String minChar(String x, int z){
   if(z==0)
   {
       c=x.substring(0);
   }
    while(z < x.length()){
        if(x.substring(z,z+1).compareTo(c)<0){
            c = x.substring(z,z+1);
        }
        z++;
        minChar(x, z);
    }
    return c;
}
公共字符串minChar(字符串x,int z){
如果(z==0)
{
c=x.子串(0);
}
而(z如果(x.substring(z,z+1).compareTo(c)尝试以下代码,它对我有效:

public  String minChar(String x, int z){
   if(z==0)
   {
       c=x.substring(0);
   }
    while(z < x.length()){
        if(x.substring(z,z+1).compareTo(c)<0){
            c = x.substring(z,z+1);
        }
        z++;
        minChar(x, z);
    }
    return c;
}
公共字符串minChar(字符串x,int z){
如果(z==0)
{
c=x.子串(0);
}
而(z如果(x)子字符串(z,z+1)。比较(c)对不起,请将
while
更改为
if
。对不起,请将
while
更改为
if