Char Array的元素在打印时右对齐

时间:2013-02-02 12:33:03

标签: java arrays

我需要打印已经在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]); 
    }
}

1 个答案:

答案 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)对其进行排序。