你好我在这个问题上编码时遇到了一些麻烦;
编写一个使用以下标题打印字符的方法: public static void printChars(char ch1,char ch2,int numberPerLine) 此方法使用每行指定的数字打印ch1和ch2之间的字符。编写测试程序,从'l'和'Z'每行打印10个字符。
有人能告诉我编码样本来解决我的问题吗?感谢
答案 0 :(得分:0)
字符以ASCII编码。每个字符都有一个唯一的十进制数表示。我们可以通过数字来访问这些字符,而不是实际字符。
例如,字符'A'
的ASCII码为65.虽然我们并不需要知道整数代码来使用它们各自的字符表示。我们可以将整数强制转换为char
s。
我们也可以在简单算术中使用字符。由于'A'
具有ASCII码65,因此65 + 1 = 66表示字符'B'
是有意义的。确实如此。
public static void printChars(char ch1, char ch2, int numberPerLine) {
if(ch1 <= 'Z' && ch2 >= 'a')
return;
int count = 0; //count number of characters on a line.
char nextChar = ch1; //initialize our next character
while(nextChar <= ch2) { //test case
System.out.print(nextChar);
count++; //once we print a character, increment our count
if(count == numberPerLine) { //check if we reach our desired amount of characters
System.out.println();
count = 0; //once we print a new line, restart the count
}
nextChar = (char) (nextChar + 1); //get next character
}
}
答案 1 :(得分:0)
以下是一些似乎适用于我的代码。
public static String alphabet = "abcdefghijklmnopqrstuvwxyz";
public static void printChars(char ch1, char ch2, int numberPerLine){
int currentNumber = numberPerLine;
int beginningIndex = alphabet.indexOf((ch1 + "").toLowerCase()) + 1;
int endingIndex = alphabet.indexOf((ch2 + "").toLowerCase());
for(int i = beginningIndex; i < endingIndex; i++){
System.out.print(alphabet.charAt(i));
if(currentNumber > 1){
currentNumber --;
}else{
System.out.println("");
currentNumber = numberPerLine;
}
}
}
public static void main(String[] args) {
printChars('c', 'z', 2);
}