我正在制作一个刽子手游戏,我希望代码检查隐藏的单词是否包含任何位置的字母表中的任何字母。例如charAt(0),charAt(1)等 一旦检查字母是否在单词中,我希望它将相应的底层标签设置为该字母。
目前,我的代码如下:
if (SecretWord.charAt(0) == 'T') {
Underline0.setText("T");
}
if (SecretWord.charAt(1) == 't') {
Underline1.setText("t");
}
if (SecretWord.charAt(2) == 't') {
Underline2.setText("t");
}
if (SecretWord.charAt(3) == 't') {
Underline3.setText("t");
}
这可以完成这项任务,但它很笨重,而且必须复制并粘贴所有字母的字母。
答案 0 :(得分:2)
您可以创建一个Underline对象数组,如:
Label[] underlines = new Label[secretWord.length()];
我不知道您是否使用标签或文字字段 - 如果需要,您可以更改Label
类型。
然后你可以使用循环:
for (int i=0; i<underlines.length; i++) {
underlines[i] = new Label(String.valueOf(secretWord.charAt(i)));
}
但这是非常基本的Java - 你应该抓一本书或在网上找一个教程: 图书: http://www.javaworld.com/article/2076338/in-search-of-the-best-java-book-for-beginners.html http://www.coderanch.com/t/627462/java/java/book-learning-java-beginner
教程:
http://www.learnjavaonline.org/ - 这里有一些基础知识。
http://docs.oracle.com/javase/tutorial/ - 这里有'官方'Oracle教程。
这是一个快速的谷歌搜索。
另一件事 - 不要用大写字母开始你的变量名 - 这违反了惯例。大写字母保留给班级名称。
答案 1 :(得分:1)
以下内容可能有所帮助:
put lables in an array names lblArray
...
if ((SecretWord.charAt(i) >= 'a' && SecretWord.charAt(i) <= 'z') ||
(SecretWord.charAt(i) >= 'A' && SecretWord.charAt(i) <= 'Z')) {
lblArray[i].setText(Character.toString(SecretWord.charAt(i)));
}
...
或者您可以使用字母字符的ascii代码。