2014-12-16 3 views
-1

txt 파일을 가지고 있습니다. 내가Java의 공백을 포함한 문자열을 인쇄합니다.

"   if(true) " 

하고

" retrun true; " 

나는 스캐너를 사용하여이 라인을 읽고있다와 같은 다른 하위 문자열 그 앞의 공간에서 하위 문자열을 얻을 필요가

 if(true) return true; 

같은 라인을 가지고하는 클래스에 할당하고 문자열에 할당합니다. 해당 문자열에서 toCharArray로 변환 중입니다. toCharArray []를 사용하여 시도했지만 공백은 무시됩니다. 어떻게 친절하게 사람이이 문제에 대해 사전에

감사 솔루션을 얻을하는 데 도움이

toCharArray

를 사용하여 위의 공간에서 문자열을 얻을 수 있습니다.

+2

을 다음과 같이 대답은? 파서 나 인터프리터가 필요한 것처럼 들리지만, 첫 번째 String을 평가하려고합니까? –

+0

indexof를 사용하여 하위 문자열 색인을 찾습니다! – SuncoastOwner

답변

0

당신은 StringReader를 사용할 수 있습니다 :이 그들 중 하나를 생략하지 않고, 모든 문자를 읽

String str = "Some String"; 
int numberOfChars = str.length(); 
StringReader sr = new StringReader(str); 
char[] chars = new char[numberOfChars]; 
int i = 0, read = 0; 

try { 
    while ((read = sr.read()) != -1) { 
     chars[i] = (char)read; 
     i++; 
    } 
} catch (IOException e) { 
    // handle the exception 
} 

.

편집 : 당신이하려는 일을 이해 했으므로 지침에 맞는 문법을 정의하는 것이 좋습니다. 이 방법으로이 두 가지 별도의 진술이나 지침을 식별 할 수 있어야합니다. 예를 들어 컴파일러 제작 도구를 사용하는 것이 좋습니다. ANTLR.

+0

답장을 보내 주셔서 감사합니다. 위의 대답은 도움이 될 것입니다. 그러나 하나의 문장을 하나씩 두 개의 문장으로 나눌 필요가 있습니다. if (true)와 같이 true를 반환합니다. 다음 줄에. 이런 식으로 할 때 우주선은 무시되고 시작됩니다. 친절하게도이 문제에 대한 해결책을 제공하십시오. 미리 감사드립니다 – umamahes

+0

내 대답을 편집했습니다. 도움이되기를 바랍니다. –

+0

답장을 보내 주셔서 감사합니다. 도구를 사용해보고 출력을 공유합니다. 감사 – umamahes

0

이 질문에 정규 표현식을 사용하여 하나의 해결책을 발견했습니다. 당신이 시도 무엇

public class Test{ 
    public static void main(String[] args){ 
    String str = "  TestProgram"; 
    Pattern pattern = Pattern.compile("\\s*[a-zA-Z0-9]+$"); 
    Matcher matcher = pattern.matcher(str); 
    while(matcher.find()){ 
     System.out.println(0,matcher.end()); 
    } 
    } 
} 

감사

관련 문제