나는 몇 시간 동안이 일을하고 있으며, 지금은 붙어있어. 좀 도와 줘. 완전한 프로그래밍 장애입니다. 모든 메서드는 알파벳 하나를 제외하고는 잘 작동합니다.다양한 문자를 가져 오는 방법은 무엇입니까? (알파벳)
두 문자 (대문자 또는 소문자)를 받아서 주어진 char 값 범위로 구성된 문자열을 반환합니다. 메서드에 전달 된 것과 동일한 대/소문자를 유지합니다. 대문자와 소문자의 char (각각 1 개)가 메소드에 건네 졌을 경우, 대문자의 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);
}
}
고마워요!
이 많이 더 효율적입니다 매우 간단합니다. 그냥 아직도 너무 많은 코드를 단일 스레드 컨텍스트에서 이전 StringBuffer 사용하여 볼 수 있으며 StringBuilder API 년 동안되었습니다 ... –
나는 너무 복잡하게 만들고 싶지 않았지만 이것은 좋은 지적입니다. –