Java 如何获取字符范围?(字母表)

Java 如何获取字符范围?(字母表),java,Java,我已经为此工作了几个小时,现在我有点卡住了……请帮帮我。 我完全是个编程障碍。除了字母表外,所有的方法都很好用 它将接收两个字符(大写或小写),并返回由给定字符值范围组成的字符串。维护传递给方法的相同大小写(大写或小写)。如果一个大写字符和一个小写字符(每个字符中有一个)被传递给该方法,请将大写字符转换为小写字符并使用小写范围。注意,范围包括起始字符,不包括结束字符。另外,请注意,如果给定的起始(第一个)字符大于结束(第二个)字符,例如'm'和'h',那么该方法将返回一个空字符串,因为在此范围内

我已经为此工作了几个小时,现在我有点卡住了……请帮帮我。 我完全是个编程障碍。除了字母表外,所有的方法都很好用

它将接收两个字符(大写或小写),并返回由给定字符值范围组成的字符串。维护传递给方法的相同大小写(大写或小写)。如果一个大写字符和一个小写字符(每个字符中有一个)被传递给该方法,请将大写字符转换为小写字符并使用小写范围。注意,范围包括起始字符,不包括结束字符。另外,请注意,如果给定的起始(第一个)字符大于结束(第二个)字符,例如'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);

}
}

谢谢

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

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

StringBuilder buf = new StringBuilder();

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

return buf.toString();
StringBuilder buf=new StringBuilder();
对于(int i=rep1;i
公共静态字符串字母表(char-letter1,char-letter2){
StringBuffer out=新的StringBuffer();
对于(字符c=letter1;c

显然,您应该使用一个字符添加一些错误检查和处理

,您只需对其进行++运算即可获得下一个字符,依此类推

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

只需做一个while循环,从开始到结束字符。

公共静态字符串字母表(字符字母1,字符字母2){

期望返回字符串,因为您说的是公共静态“字符串”

取出字符串,这应该可以工作,如果您只想使用System.out.print打印,请将其替换为void,或者返回您制作的字符串


除此之外,我对使用大写和小写的建议是将字符转换为字符串,只需使用java内置方法。

首先使用此方法生成一个随机字母。首先必须在一定范围内生成一个随机数。然后,当您获取该数字并将其存储在char变量中时,它会显示出来作为一封信

char letter = 0;
letter = (char) (65 + (char)(Math.random() * (90 - 65) + 1));
for(char c='a';c简单解决方案:

    String str = "A"
    char cr = str.charAt(0);
    
    System.out.println((cr += 1)); //got B

问题是如何创建要返回的字符串。这里不重要,但使用StringBuilder更有效,因为它的方法不同步。只是我仍然看到很多代码在单线程上下文中使用旧的StringBuffer,StringBuilder已经在API中使用多年了……我不想让它变得太复杂,但这是非常复杂的一个很好的观点。最好的部分是它将在大多数情况下工作。谢谢。
for (char c = 'a'; c <= 'z'; c++) {
        System.out.println(c);
    }
    String str = "A"
    char cr = str.charAt(0);
    
    System.out.println((cr += 1)); //got B