如何获得一系列角色? (字母)

时间:2011-02-24 01:38:02

标签: java

我已经工作了几个小时了,现在我有点卡住....请帮助我。 我是一个完整的编程障碍。除了字母表之外,所有方法都可以正常工作。

它将接收两个字符(大写或小写)并返回由给定的char值范围组成的字符串。保持传递给方法的相同大小写(上部或下部)。如果将大写char和小写char(每个中的一个)传递给方法,则将大写char转换为小写并使用小写范围。注意,范围将包括起始char和排除结束char。另外,观察如果给定的起始(第一个)char大于结束(第二个)char,例如'm'和'h',则该方法将返回一个空字符串,因为此范围内没有字符。

您能否就如何在字母表方法上执行上述操作给我一些帮助?

import java.util.*;

class CharacterOperations
{
public static void run()
{
int number=1;
Scanner scanner = new Scanner(System.in);
while(number > 0)
{
System.out.println("(1) Insert 1 to change a letter from its lower case value to its upper case value");
System.out.println("(2) Insert 2 to change a letter from its upper case value to its lower case value ");
System.out.println("(3) Insert 3 for the alphabet method (range of two letters) ");
System.out.println("Enter a number (or negative to quit): ");
number = scanner.nextInt();

if (number == 1)
{
System.out.print("Enter a lower case letter: ");
String a= scanner.next();
char letter = (char) a.charAt(0);
toUpper(letter);
}
else if (number == 2)
{
System.out.print("Enter an upper case letter: ");
String a= scanner.next();
char letter = (char) a.charAt(0);
toLower(letter);
}
else if (number == 3)
{
System.out.print("Enter an upper case or lower case letter: ");
System.out.print("Enter an upper case or lower case letter: ");
String a= scanner.next();
char letter1 = (char) a.charAt(0);
String b= scanner.next();
char letter2 = (char) b.charAt(0);
alphabet(letter1, letter2);
}
}
}

public static char toUpper(char letter)
{
int rep = ((int)letter - 32);
char ltr = (char)rep;
System.out.println("The letter "+ ltr + " integer representation is: " + rep);
return (char) ((int) letter -32);
}

public static char toLower(char letter)
{
int rep = (int)(letter + 32);
char ltr = (char)rep;
System.out.println("The letter " + ltr + " integer representation is: " + rep);
return (char) ((int) letter + 32);
}

public static String alphabet( char letter1, char letter2){ 
 int rep1 = (int)letter1;
 int rep2 = (int)letter2;
 char ltr1 = (char)rep1;
 char ltr2 = (char)rep2;
System.out.println("The letter " + ltr1 + " integer representation is: " + rep1);
System.out.println("The letter " + ltr2 + " integer representation is: " + rep2);

}
}

谢谢!

7 个答案:

答案 0 :(得分:5)

使用char,你可以用它来获取下一个char等等。

char a = 'a';
a++; // now you have b
a++; // now you have c

只需执行一个while循环即可从头到尾结束char。

答案 1 :(得分:2)

首先使用它来生成一个随机字母。首先必须生成一定范围内的随机数。然后,当您返回数字并将其存储在char变量中时,它会将其显示为字母。

char letter = 0;
letter = (char) (65 + (char)(Math.random() * (90 - 65) + 1));

答案 2 :(得分:2)

for (char c = 'a'; c <= 'z'; c++) {
        System.out.println(c);
    }

非常简单^ _ ^

答案 3 :(得分:1)

这个答案假设您只是在谈论ASCII集中的标准键盘字符。

获取2个字符的ascii代码并创建一个循环:

StringBuilder buf = new StringBuilder();

for (int i = rep1; i <= rep2; ++i) 
    buf.append((char)i);

return buf.toString();

这将起作用,因为它们都需要相同的情况......

答案 4 :(得分:1)

public static String alphabet(char letter1, char letter2) { 
    StringBuffer out = new StringBuffer();    
    for (char c = letter1; c < letter2; c++) {
        out.append(c);
    }
    return out.toString();
}

显然你应该添加一些错误检查和处理

答案 5 :(得分:0)

简单的解决方案:

{% for user in users %}
{{ user }} has {{ user.post_count }} posts
{% endfor %}

答案 6 :(得分:-1)

public static String alphabet(char letter1,char letter2){

期望返回一个String,因为你说的是​​public static“String”

取出字符串,这应该有效,如果你只想用System.out.print进行打印,则将其替换为void。或者返回你制作的字符串

除此之外,我建议使用大写和小写将char转换为String并只使用java内置方法。