2016-08-20 5 views
0

내 검색에서 찾은 대부분의 예제는 복잡한 코드에 포함되어 있습니다. 나는 두 가지 대답 (바이너리?) 질문에 대한 대문자 또는 소문자 응답을 받아들이고 다음 중 하나의 답을 사용하여 단수 결과로 진행하는 질문 프로그램을 사용하려고합니다. 내 책에서 문자 클래스 메서드를 찾기 전에 if/else 접근 방식을 시도했지만 예제로는 반쪽 만 도움이됩니다.어느 것이 먼저 오나요? char 또는 String?

여기에 코드입니다 :

import java.util.Scanner; 
public class MarriageQuiz 
{ 
public static void main(String[] args) 
{ 
    char isMarried = 'M'; 
    char isSingle = 'S'; 
    String marStat; 

    System.out.print("Please enter your Marital Status (M or S) >> "); 
    marStat = input.nextLine(); 

    if(marStat.isUppercase(isMarried | isSingle)) 
    { 
     marStat = input.nextLine(); 
    } 
    else if((marStat.isLowercase(isMarried | isSingle))) 
    { 
     marStat = marStat.toUpperCase(isMarried | isSingle); 
    } 
    System.out.print("You are " + marStat); 
} 
} 
+0

저는이 부울을 사용하는 아이디어에 유혹입니다. –

+0

StingBuilder를 사용하는 것에 대해 생각했지만 편집 할 문자열을 식별해야합니다. –

+0

귀하의 질문은 무엇입니까? 또 다른 것은 코드 예제의 논리가 이해가되지 않는다는 것, 목적을 식별 할 수 없다는 것입니다. –

답변

2

은 그냥 예상 경우에 모든 입력 변환 (대문자 또는 소문자, 당신은 하나를 선택).

이미 그럴 경우 한 문자로 변환하려고해도 아무런 해가 없습니다. toUppercase 메서드는 불필요하게 호출 할 때 불평하지 않습니다. 따라서 사례를 테스트 할 필요가 없습니다.

marStat = marStat.toUppercase() ; 
if (marStat.equals('S') { 
    … do Single stuff 
} else if (marStat.equals('M') { 
    … do Married stuff 
} else { 
    … handle unexpected input 
} 

팁 :이 코드를 엄청나게 많은 시간을 실행하는 경우가 the Oracle Tutorial에서 논의 오토 박싱 방지하기 위해 Character 클래스로 char 원시의 사용을 교체를 고려하십시오.

+1

새로운 코더가 있으면이 "패턴"을 기억하는 것이 좋을 것입니다. 사용자 입력을 알려진 문자열과 비교할 때마다 커리어에 반복해서 사용하게 될 것입니다. – MarsAtomic

+0

@ RyanMartin ??? M & S를 무엇으로 만드시겠습니까? –

+0

신경 쓰지 마세요. 나는 당신이 나의 질문에 대답했다고 생각합니다. 내 if/else 액션에서 'M'또는 'S'를 사용하고 싶습니다. 케이스에 상관없이 인식되도록하는 방법을 알지 못했습니다. –

0

isUppercaseisLowercase은 전혀 이와 같이 작동하지 않습니다. 그리고 당신의 코드는별로 의미가 없습니다.

문자 만 비교하려는 것 같지만 nextLine을 호출하여 String을 반환합니다. 그리고 if 문에서 어떻게 든 사용자 입력을 묻습니다. . 네가 여기서 뭘하는지 모르겠다.

char isMarried = 'M'; 
char isSingle = 'S'; 
char marStat; 

System.out.print("Please enter your Marital Status (M or S) >> "); 
marStat = input.nextLine().charAt(0); 

if(marStat == 's' || marStat == 'S') 
{ 
    System.out.println("You are single!"); 
} 
else if(marStat == 'm' || marStat == 'M') 
{ 
    System.out.println("You are married!"); 
} 

내가 작품을 프로그래밍하는 방법을 완전히 이해 생각하지 않는다 :

난 당신이 뭔가를 원하는 것 같아요.