我需要打印已经在Hangman中使用的字母,即char array
中的元素,但它们是从右边而不是从左边逐个出现。例如,第一个字母出现在第26个位置。第二个占据第25或第26个位置(取决于alpha顺序)等等...建议将非常感谢。
生活:5 字:B _ _ _ 到目前为止使用的信件:BY
生活:4 字:B _ _ _ 到目前为止使用的信件:BEY
生活:4 字:B O O _ 到目前为止使用的信件:BEOY
char[] lettersUsedCharArray = new char[26];
/**************************************************
* Method - add guessLetter to lettersUsedCharArray
*
**************************************************/
public void addGuessLetter(char guessLetter)
{
this.guessLetter = guessLetter;
for (int i = 0; i < this.lettersUsedCharArray.length; i++)
{
if (this.lettersUsedCharArray[i]== '\0')
{
this.lettersUsedCharArray[i]=this.guessLetter;
break;
}
}
Arrays.sort(this.lettersUsedCharArray);
}
/**************************************************
* Method - print out out letters used
*
**************************************************/
public void printLettersUsedCharArray(char[] lettersUsedCharArray, OutputBox oBox)
{
oBox.print("Letters used so far : ");
for(int i = 0; i < lettersUsedCharArray.length; i++)
{
oBox.print(lettersUsedCharArray[i]);
}
}
答案 0 :(得分:0)
如果您尝试以这种方式对数组进行排序[b,a,_,_]
- &gt; [a,b,_,_]
(以免_
为“空”的地方)与Arrays.sort
然后为了避免在开头放置_
标记,您应该指定必须排序的范围,例如这个例子:
char[] arr = new char[4];
arr[0] = 'B';
arr[1] = 'A';
System.out.println(Arrays.toString(arr)); // before sorting: [B, A, , ]
Arrays.sort(arr, 0, 2);// sort from 0 index (inclusive) to 2 index (exclusive)
System.out.println(Arrays.toString(arr)); // after sorting: [A, B, , ]
因此,在您添加char到数组的情况下,您可以迭代数组直到找到空白空间,将该字母放入数组并使用Arrays.sort(arr, 0, i+1)
对其进行排序。