2011-10-27 5 views
-1
import java.util.Scanner; 

public class MatchesMethodTest { 

    public static void main(String[] args) {  
     String s; 

     Scanner input = new Scanner(System.in); 
     System.out.print("Input one real number to one decimal place and one natural number(ex. 1.4 5): "); 
     s = input.next(); 

     if (s.matches("\\f{1} \\d{1}$")) 
      System.out.print("You input correctly."); 
     else 
      System.out.print("You input incorrectly."); 
    } 
} 

사용자는 하나의 소수점 이하 하나의 자연수를 입력해야합니다. 이 프로그램은 사용자 입력이 올 바르고 잘못 입력되었는지 여부를 인쇄합니다. 그래서 1.4와 5를 입력 할 때, 프로그램이 "You input is"를 인쇄하기를 원하지만 "You can incorrectly"라고 출력합니다. 이 문제를 어떻게 해결할 수 있습니까?이 프로그램은 정확한 입력 값을 구별하는 것입니다.

+4

캡쳐 화면을 캡쳐하고 출력 할 수 있습니까? – PaoloVictor

+0

확실히 나는 Paolo 수 있습니다. – schizoid322

답변

2

- 문자의 특별한 종류가 "용지 공급라고 일치 : 여기

은 기준입니다 캐릭터." 한 자리, 기간, 숫자, 공백, 그리고 마지막 숫자에

s.matches("\\d{1}\\.\\d{1} \\d{1}$") 

이 확인 :

은에 정규 표현식 매치를 변경해보십시오. (당신의 "자연수"는 {1} 용어로 하나의 숫자에 제한됩니다.)

편집 : 또한 .next() 방법은 첫 번째 정수를 잡을 수 있기 때문에, input.nextLine()input.next()을 변경해야 할 수 있습니다. 테스트되지 않았습니다.

+0

여전히 같은 결과입니다. – schizoid322

+0

@ schizoid322 : 편집을 참조하십시오. – Tim

+0

Tim에게 도움을 주셔서 감사합니다. 대단히 감사합니다!. – schizoid322

관련 문제