2013-07-07 3 views
2

내가 다음을 수행하는 데 도움이 필요 문자열로 만들려면 :스캐너 객체를 가지고 그것을

  1. 사용 입력을 수신 스캐너 클래스를
  2. 스캐너로부터 입력을 측정하고 그 문자열
  3. 을 (I이있어)
  4. replaceAll을 사용하여 사용자 입력에서 숫자 0-9를 제거하십시오.

    public static void main(String[] args) { 
    
        Scanner firstname = new Scanner(System.in); 
        System.out.println("Please enter your first name:"); 
        String firstname1 = firstname.next(); 
        firstname1.replaceAll("[^0-9]",""); 
        System.out.println(firstname1); 
    

    업데이트 코드 :

아래 코드 내가 지금까지 가지고 있지만 그것은 단지 사용자의 입력을 돌려 숫자를 제거하지 않는 것입니다. 호버 크래프트에 감사드립니다.

import java.util.Scanner;  

public class Assignment2_A { 

    public static void main(String[] args) { 

     Scanner firstname = new Scanner(System.in); 
     System.out.println("Please enter your first name:"); 
     String firstname1 = firstname.next(); 
     firstname1 = firstname1.replaceAll("[^A-Z]",""); 
     System.out.println(firstname1); 
+0

'firstname1.replaceAll ("[^ 0-9]", "");'이것은 firstname1 문자열을 변경하지 않고 ** 변경된 문자열을 ** 반환하기 때문에 문제가 있습니다. 'firstname1 = firstname1.replaceAll ("[^ 0-9]", "");'이유는 * 문자열이 불변 *이기 때문입니다. 생성 된 String 객체는 변경할 수 없지만 String 변수가 참조하는 String 객체는 변경할 수 있지만 미묘하지만 중요한 차이점이 있습니다. –

+0

호버 크래프트 뱀장어로 가득 감사합니다.나는 당신에게 아주 가까이서 감사하고있다. 내 코드를 다음과 같이 업데이트했으며 지금은 숫자 만 다시 가져옵니다. 알파 문자 (0-9가 아님) 만 검색하도록 어떻게 업데이트 할 수 있습니까? – user2558595

답변

3
String input = yourScannerObject.nextLine(); 

는 "yourScannerObject는"이름입니다 : 지금은 사용자가 입력 한 숫자 값 이전에 아래의 코드처럼, 난 단지 문자를 다시 얻고 모든 알파 문자를 검색하는 방법을 조사하고 있습니다 스캐너를주게.

1

어떤 방법으로 검사 했습니까? 그것은 {scanner object name}.next()입니까?

경우 당신은 문자열을 가지고 당신이해야 할 모든이, 예를 들어 어떤 문자열을 만들고, 여기에 입력을 저장되도록 : 전에

  • String str="";
  • str = {scanner object name}.next();

을 자바에서 무엇이든 사용하면 API를 읽는 것이 좋습니다.

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html#next()

스캐너 클래스 (I이있어)

스캐너로부터 입력을 복용하고 사용자의 입력에서 숫자 0-9를 제거하기 위해 문자열에게 그것을

사용 완전히 대체하기를 사용하여 입력을 수신

0

. 여기

은 예입니다 :

String in; 
Scanner scan = new Scanner("4r1e235153a6d 6321414t435hi4s 4524str43i5n5g"); 
System.out.println(in = (scan.nextLine().replaceAll("[0-9]", ""))); // use .next() for space or tab 

출력 :

read this string 

코드의 문제는 정규식 "[^ AZ]"모든 비 알파벳 자본 문자를 제거하도록 설정되어 . 즉, 모든 소문자를 제거한다는 의미입니다. "[^ a-zA-Z]"라고 말할 수 있지만 특수 문자도 제거하고 있습니다.

관련 문제