2014-11-05 44 views
0

我必须制作一个程序,需要生成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); 

在哪里我不知道自己还能做些什么

+0

一种方法是从结果三创建一个新的字符串,并使所有的字符以小写字母除第一个。然后打印这个String。 – user2336315 2014-11-05 16:51:56

+0

看来你错过了一些很酷的String类的功能!也许看看[StringBuilder](http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html) – Coffee 2014-11-05 16:52:36

+0

嘿,伙计们!谢谢你的协助。不,我没有错过任何类,我只是觉得编码非常困难(因为我仍然不明白每个命令和输入是什么......我仍然在做java教程,使它更容易,但它有点缓慢的过程:( PS。我想我们还没有开始使用StringBuilder命令 – Weasel 2014-11-05 16:55:05

回答

0

你应该考虑下破这个问题分成多个方法,并有自己的主程序调用这就是那些方法。

例如,你可以建立类似:

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

你的主程序可以打电话给他们,并且更容易遵循:

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

我会作出这样的tekst1假设,tekst2和tekst3是字符串,因为它没有在提供的代码中显示。

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

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

现在,有来自String类,你可以用它来实现自己的目标的各种方法。您可以使用String concatenation的话结合起来:

String combinedWords = tekst1 + tekst2 + tekst3; 

使用String方法toLowerCasesubstring得到除第一个所有字母小写:

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

使用字符串方法charAt得到第一个字母:

char upperChar = combinedWords.charAt(0); 

最后,结合upperCharlowerCaseChars给你你想要的结果:

String result = upperChar + lowerCaseChars 
相关问题