将三个单词合二为一?

时间:2014-11-05 16:49:26

标签: java

我必须制作一个程序,需要生成10个字母的三个单词,每个单词的第一个字母为UpperCase。之后,我必须将这三个单词组合成一个单词,并且该单词应该只有第一个字母作为UpperCase。

到目前为止,我设法做到了这一点:

public static void main(String[] args) {
    new DZ05();
}

public DZ05() {
    Random word = new Random();
     for(int i = 0; i<= 10; i++) {
        int x = word.nextInt(25)+97;
        if(i==0) {
            tekst1+= Character.toUpperCase((char) (x));
        } else {
        tekst1+= (char) (x);
        }
    }       
         for(int i = 0; i<= 10; i++) {
        int x = word.nextInt(25)+97;
        if(i==0) {
            tekst2+= Character.toUpperCase((char) (x));
        } else {
        tekst2+= (char) (x);
        }
    }
             for(int i = 0; i<= 10; i++) {
        int x = word.nextInt(25)+97;
        if(i==0) {
            tekst3+= Character.toUpperCase((char) (x));
        } else {
        tekst3+= (char) (x);
        }
    }      
    System.out.println(tekst1);
    System.out.println(tekst2);
    System.out.println(tekst3);

那就是我不知道还能做什么

2 个答案:

答案 0 :(得分:0)

您应该考虑将问题分解为多种方法,并让主程序调用这些方法。

例如,您可以构建类似的内容:

private String randomWord(int length) { ... }
private String titleCase(String word) { ... }

您的主程序可以调用它们并且更容易理解:

String fiveLetterWord = randomWord(5);
String titleCasedWord = titleCase("threeConcatenatedWords");

答案 1 :(得分:0)

我将假设tekst1,tekst2和tekst3是字符串,因为这未在提供的代码中显示。

首先,你的for循环生成11个而不是10个字母的单词。它应该是:

for (int i = 0; i < 10; i++)

现在,您可以使用String类中的各种方法来实现目标。您可以使用String concatenation来组合单词:

String combinedWords = tekst1 + tekst2 + tekst3;

使用字符串方法toLowerCasesubstring获取除小写字母以外的所有字母:

String lowerCaseChars = combinedWords.toLowerCase().substring(1);

使用String方法charAt获取第一个字母:

char upperChar = combinedWords.charAt(0);

最后,合并upperCharlowerCaseChars会为您提供所需的结果:

String result = upperChar + lowerCaseChars