2013-04-18 8 views
1

다음 예제를 시도했지만 다음과 같이 출력합니다. output[]. 점으로문자열을 분할하여 배열에 저장하는 방법

String[] s = amount.split("\\."); 

는 "모든 문자"에서이다 : 나는 점을 탈출 시도 calculatePayout()를 작동 할 문자열 "1.0"을 통과해야하고 s[1]

import java.util.Arrays; 


    public class aps { 

     public void calculatePayout(String amount) 
     { 
      String[] s = amount.split("."); 
      System.out.println("output"+Arrays.toString(s)); 
     } 

    public static void main(String args[]) 
    { 
     new aps().calculatePayout("1.0"); 
    } 
    } 
+0

'String' 클래스에는 메소드가 있습니다. 설명서를 읽으십시오. –

답변

9

방법 split()은 정규 표현식을 허용합니다. 정규 표현식의 문자 .은 "모든 것"을 의미합니다. .으로 문자열을 분할하려면이 문자열을 이스케이프 처리해야합니다 (예 : split("\\.")). 두 번째 백 슬래시는 첫 번째 정규 표현식에서 점을 이스케이프 처리하고 두 번째 표현식은 Java 컴파일러에서 슬래시를 이스케이프 처리하므로 필요합니다.

+1

"모든 것"보다는 "무엇이든"을 말하는 경향이 있습니다. – Dukeling

2

당신이 올바른 구문을 사용하여 점을 탈출 할 수 있도록 amount.split("\\.")

Split 방법은 정규식을 사용하십시오.

1

.메타 문자 또는 정규식 세계의 특수 문자입니다. String#split(regex), 당신이 중 하나를 백 슬래시로 이스케이프 또는 일반 문자로 취급하기에 주문 문자 클래스를 사용할 필요가

어느 amount.split("\\."); 또는 amount.split("[.]");

관련 문제