这是我从学校收到的作业问题。问题是,写一个名为capitalizer的方法,它将字符串“拥有”,然后显示(不必返回)所有可能的大写字母,例如“OwNaGE”或“OWnAGE”。它不必为每一个字符串工作,只是“拥有”这个词就足够了,它必须用递归来完成。基本递归
这是我到目前为止。
import java.util.*;
class MethodAssign2{
static void capitalizer(String a,int b){
if(b==-1){
System.out.println("worked?");
}else{
char[] achars = a.toCharArray();
achars[b] -= 32;
String caplet = new String(achars);
System.out.println(caplet);
System.out.println(a);
capitalizer(caplet,b-1);
capitalizer(a,b-1);
}
}
public static void main(String[]args){
String word = "ownage";
capitalizer(word,word.length()-1);
}
}
我的大脑现在完全搞砸了。似乎我有很多重复的情况。你们认为我接近正确的解决方案吗?我该怎么做才能在基本案例中没有发生什么,而不是打印出某些东西?我如何避免重复?任何人都请帮助我,我会非常感激。
这个网站是不是这种正确的地方的问题。试试代码审查网站。 – bmargulies
@bmargulies:我不同意。 CodeReview是“提供您对我的代码的看法”。这个问题是:“我有一个问题,这是我的尝试,但它失败了 - 我怎么能使它工作?”这是一个有效的SO问题。 – amit
不,操作员从不说他或她失败了,或者说什么是错的,只是他们发现代码很丑陋。 – bmargulies