2013-02-27 3 views
0
import java.util.Scanner; 

public class Separate { 

    public static void main(String[] args) { 
     Scanner user_input = new Scanner(System.in); 
    String variable; 
    System.out.print("Enter Variable:"); 
     variable = user_input.next(); 
      Separate(variable); 
    } 

    public static void Separate(String str) { 
      String number = ""; 
      String letter = ""; 
     String symbol = ""; 
      for (int i = 0; i < str.length(); i++) { 
       char a = str.charAt(i); 
       if (Character.isDigit(a)) { 
         number = number + a; 

       } else { 
         letter = letter + a; 


     } 
      } 
      System.out.println("Alphabets in string:"+letter); 
      System.out.println("Numbers in String:"+number); 
    } 

}문자열에서 문자와 기호를 분리하는 방법.

좋아, 이미 숫자와 문자를 입력 내가 구분 코드를 (거의 완료). 문제는 문자를 입력 할 때 예를 들어 (^, +, -, %, *) Symbol은 문자로 표시됩니다.

내가 원하는 것은 숫자와 문자에서 한 것처럼 문자에서 기호를 분리하고 다른 출력을 만드는 것입니다.

+0

내가 –

+0

당신이 정기적으로 Experssion으로 시도 해 봤나 생각 정규식 기반 솔루션을 사용할 수 있습니까? 그것은 당신의 문제를 해결해야합니다. [정규 표현식] (http://docs.oracle.com/javase/tutorial/essential/regex/)을보십시오 – araknoid

답변

1

문자 isDigit, else이 문자로 처리되는지 테스트하고 있습니다. 글자가 아닌 경우 다른 모든 경우는 else으로 코드에 있습니다. 해당 기호에 대해서도 else 대소 문자를 만듭니다.

0
public static void Separate(String str) 
{ 
    String number = ""; 
    String letter = ""; 
    String symbol = ""; 

    for (int i = 0; i < str.length(); i++) 
    { 
     char a = str.charAt(i); 
     if (Character.isDigit(a)) 
     { 
      number = number + a; 
      continue; 
     } 
     if(Character.isLetter(a)) 
     { 
      letter = letter + a; 
     } 
     else 
     { 
      symbol = symbol + a; 
     } 
    } 
    System.out.println("Alphabets in string:"+letter); 
    System.out.println("Numbers in String:"+number); 
} 
+0

바람직하게는'StringBuilder'를 사용하십시오. – jlordo

+0

고맙습니다! 이 작품! 건배! 진실은 나가 계속 같이 키워드를 사용할다는 것을 나는 모른다. 다시 고마워! –

+0

@ Mr.Yoso - 당신은'계속'을 사용하지 않고 똑같은 일을 할 수 있습니다. else if then then else를 가지고 있습니다. – user93353

3
public static void separate(String string) { 
     StringBuilder alphabetsBuilder = new StringBuilder(); 
     StringBuilder numbersBuilder = new StringBuilder(); 
     StringBuilder symbolsBuilder = new StringBuilder(); 
     for (int i = 0; i < string.length(); i++) { 
      char ch = string.charAt(i); 
      if (Character.isAlphabetic(ch)) { 
       alphabetsBuilder.append(ch); 
      } else if (Character.isDigit(ch)) { 
       numbersBuilder.append(ch); 
      } else { 
       symbolsBuilder.append(ch); 
      } 
     } 
     System.out.println("Alphabets in string: " + alphabetsBuilder.toString()); 
     System.out.println("Numbers in String: " + numbersBuilder.toString()); 
     System.out.println("Sysmbols in String: " + symbolsBuilder.toString()); 
    }