【问题标题】:I need to convert a void out put into a string so that i can compare the two strings我需要将一个 void 输出转换为一个字符串,以便我可以比较两个字符串
【发布时间】:2013-11-23 01:01:21
【问题描述】:

我的程序应该根据用户的输入生成一个字母模式。我必须使用递归将每个输出设置为不同的。我已经这样做了。接下来我必须用另一种方法比较两个输出,并使用递归来找到两者之间最长的公共子序列的长度。问题是我不知道如何比较它们。由于它们是无效的结果,我不知道如何将它们转换为字符串。

 import java.util.Scanner;
public class patternOfLetters {
private static String letter;

public static void printLetterPattern(char letter){
    char [] pattern = new char[1];
    int patternLength= pattern.length;
    String result="";
    char start=letter;
    if(start=='A'){
        System.out.print('A');
        result+='A';
    }else if(start=='B'){
        printLetterPattern('A');
        System.out.print('B');
        printLetterPattern('A');
    }
    else if(start=='C'){
        printLetterPattern('B');
        System.out.print('C');
        printLetterPattern('B');
    }
    else if(start=='D'){
        printLetterPattern('C');
        System.out.print('D');
        printLetterPattern('C');
    }
}


public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner in = new Scanner(System.in);
    Scanner otherIn = new Scanner(System.in);
    System.out.println("Enter a character to start the pattern: ");
    String input = in.nextLine(); 
    String upper = input.toUpperCase();
    char letter=upper.charAt(0);
    System.out.println("");
    System.out.println("Your first pattern of letters is:");
    printLetterPattern(letter);
    System.out.println("");
    System.out.println("");

    System.out.println("Enter another character to generate your second pattern: ");
    String input2 = in.nextLine(); 
    String upper2 = input2.toUpperCase();
    char letter2=upper2.charAt(0);
    System.out.println("");
    System.out.println("Your second pattern of letters is:");
    printLetterPattern(letter2);

in.close();
otherIn.close();
}

}//fin.

【问题讨论】:

    标签: java string recursion subsequence


    【解决方案1】:

    你不能,返回类型“void”意味着没有返回结果,所以没有什么可以转换的。

    您的方法只是将它们的输出打印到控制台,您需要重写它们以便它们真正返回结果。

    一种方式可能是这样的(伪代码):

    public String produceLetterPattern(String pattern, char letter) {
        ...
        if(start=='A') {
            pattern+="A";
            return pattern;
        } else if (start=='B') {
            pattern = produceLetterPattern(pattern, 'A');
            pattern +="B";
            pattern = produceLetterPattern(pattern, 'A');
            return pattern;
        } ...
    }
    

    这是一般的想法,你应该能够从那里解决它。重要的部分是你需要一个返回的结果,在上面的例子中是一个字符串,通过

    返回
    return pattern;
    

    【讨论】:

    • 然后,当您准备好打印它时,只需执行System.out.println(produceLetterPattern(...))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多