我必须编写一个返回给定字符串中最小字符(使用ASCII序列)的方法。示例minChar("你好");应该返回'。
目前我正在尝试运行minChar(&#34; hello&#34;,0)。我的想法是它将从h(h <〜)开始,所以它将设置c = h,然后调用minChar(&#34; hello&#34;,1),指定c = e,等等比较字母在最终回归之前&#39; e&#39;因为这是最小值。我错过了什么?
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;
}
答案 0 :(得分:0)
您没有使用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;
}
答案 1 :(得分:0)
尝试以下代码,它适用于我:
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;
}