我已经工作了几个小时了,现在我有点卡住....请帮助我。 我是一个完整的编程障碍。除了字母表之外,所有方法都可以正常工作。
它将接收两个字符(大写或小写)并返回由给定的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);
}
}
谢谢!
答案 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内置方法。