2013-10-09 4 views
1
String Equation = input.nextLine(); 
String[] number = Equation.split("\d+"); 

모든 숫자를 문자열로 분할하고 숫자로 덤프하고 싶습니다. 어떻게 했어? 식 등자바의 문자열 배열에서 숫자 분할

이다 : 배^4 - 45Y^4

그것으로 인덱스 번호를 덤프한다

{2, 4, 45, 4};

+2

java에는 '\ d' 이스케이프 시퀀스가 ​​없습니다. 코드가 ocmpile되지 않습니다. –

+0

@RaptorDotCpp 컴파일되지 않습니다. – toniedzwiedz

+0

어떻게 그렇게 할 수 있습니다. 어떻게 나눴 니? – Muzamil

답변

3

는 내가 할 줄은 String.replaceAll 공백을 모든 비 자리입니다. 그런 다음 공백으로 String.split을 입력하십시오.

package com.sandbox; 


import java.util.Arrays; 

public class Sandbox { 
    public static void main(String[] args) { 
     String input = "2x^4 - 45y^4"; 
     input = input.replaceAll("\\D", " "); 
     String[] parts = input.split("\\W+"); 

     System.out.println(Arrays.toString(parts)); 
    } 
} 

이 인쇄됩니다 "[2, 4, 45, 4]"지금은 RohitJain의 대답 @ 이해


는, 내가 불필요한 단계를 포함하고있어 보인다. 어쨌든 작동하기 때문에 여기에두고 갈 것이라고 생각하지만 그의 솔루션을 추천합니다. 그의 솔루션은 모든 숫자가 아닌 숫자로 나뉩니다. split은 구분 기호를 제외하기 때문에 숫자가 아닌 숫자도 제거됩니다.

+0

감사합니다. @tieTYT 작동합니다 .. – Muzamil

8

당신은 하나 이상의 숫자가 아닌 문자를 분할 할 수 있습니다 - \\D+ : 자바 정규식과 함께 작업하는 동안

String[] number = equation.split("\\D+"); 

, 당신은 \d, \D, 그래서에 빠져 두 배로해야합니다. Java 명명 규칙을 따르십시오. 변수의 이름은 이 아니라 equation이어야합니다.