2011-03-01 4 views
1

','로 구분하고 '.'로 끝나는 하위 문자열을 얻는 더 좋은 방법이 있습니까? 이쪽보다?하위 문자열을 얻는 가장 좋은 방법은 무엇입니까?

if (paramsText != null) 
    { 
     while (paramsText.contains(",")) 
     { 
      params.add(paramsText.substring(0, paramsText.indexOf(","))); 
      paramsText = paramsText.substring(
        paramsText.indexOf(",") + 1, paramsText.length()); 
     } 

     params.add(paramsText); 
    } 
+1

당신은'없는'에 암호. – aioobe

답변

2

아마도 이런 일이 당신을 맞는 것 :

String str = "There is, a more optimal, way to obtain. subtrings which," 
      + "are separated by, and ended by. than this way."; 

String[] substrings = str.split("\\s*[.,]\\s*"); 
for (String substr : substrings) 
    System.out.println("\"" + substr + "\""); 

출력 : "."

"There is" 
"a more optimal" 
"way to obtain" 
"subtrings which" 
"are separated by" 
"and ended by" 
"than this way" 
+0

'String []을 수행 한 후에 substrings = str.split ("\\ s * [.,] \\ s *"); ''substrings'을 List 으로 가질 필요가 있습니다. 따라서 Array를 순환시켜야합니다. 전체 결과가 원래 코드보다 더 최적입니까? BTW,이 함수는 웹 페이지의 내용을 스페인어 또는 영어로 또는 그 반대로 번역 할 것이기 때문에이 질문입니다 – camiloqp

+0

배열에 대한 목록 인터페이스가 필요한 경우'Arrays.asList (substrings)' , 병목 현상이 아니라면이 작은 조각의 코드에서 너무 많은 성능을 기대하지 않을 것입니다 ... 번역기를 통해 밀어 넣으려고한다면 병목 현상이 다른 곳에서 발생했을 것입니다. . – aioobe

+0

감사합니다. 그러면 성능이 약간 향상 될 것입니다.) – camiloqp

3

실제로 "." 당신은이 작업을 수행 할 수 있습니다

String[] params = paramsText.split(","); 
+0

작동하지만 나중에 List같이 params 함수를 호출해야합니다. 해당 목록을 얻기 위해 Array를 순환시켜야합니까? – camiloqp

+2

@camiloqp 목록 l = Arrays.asList (); – Erik

관련 문제