2014-11-25 2 views
0

파일의 여러 줄에서 문장 검색 (문장 - 단어 모음에서 회문 문장 만들기)에 대해 질문하고 싶습니다.파일에 여러 줄의 문장을 찾으십시오.

예로서, 파일의 구조

너무
텍스트

텍스트

야유 텍스트

에 출력 야유 과열되어야 이하로하지만, I 이런 방식으로 구현하는 방법을 모른다.

나는 하나의 회문을 찾기 위해 간단한 함수를 만든 당신이

가 사전에 감사

public static boolean findPalindrome(String s) { 
int low, high; 
low = 0; 
high = s.length() - 1; 
while (low < high) { 
    if (s.charAt(low) != s.charAt(high)) { 
     return false; 
    } 
    low++; 
    high--; 
} 
return true; 

내가 꽵을 사용하여 파일에서 단어를로드() 메소드 내가 그것을 개선하는 데 도움 수 있다면 기쁠 것

+0

나는 당신이 무엇을 요구하고 있는지 확실하지 않습니다. 당신은 말문이 파일에 흩어져있어 그 자체가 문장이 아닙니다. 그 다음에는 파일을 스트림으로 읽는 경우 출력이 회문이되지 않는 단어 ("텍스트")가 있습니다. 어떻게 든이 단어들을 "제거"하고 출력을 회문으로 바꾸기를 원하십니까? – hfontanez

+0

원본 파일의 단어가 잘못 되었으면 어떻게해야합니까? 예를 들어, 너무, 텍스트, 멍청이, 텍스트 .... 그 때 무엇? 당신은 단어 모음에서 회문 문장을 만들 것을 요청하는 기초입니다. 무자비한 사람을 제외하고는 어떻게해야할지 모르겠습니다. 매우 지루한 작업이 될 것입니다. – hfontanez

+0

몇 가지 무차별 방식에 대해 생각하고 있었지만 비슷한 해결책을 찾지 못했습니다. – belford

답변

1

String을 되돌려 서 회문인지 확인하는 방법을 알려 드릴 수 있습니다. 귀하의 요구 사항에 따라 회문 문구를 효과적으로 만드는 법을 모르겠습니다. 문자열을 반전하려면 StringBuilder 생성자에 원래 String을 전달하고 문자열을 반대하기 위해 reverse 방법을 사용하십시오

String str = "word"; 
    StringBuilder buff = new StringBuilder(str); 
    boolean isPalindrome = str.equalsIgnoreCase(buff.reverse().toString()); 

을 원래 문자열과 반대로 문자열이 다음 단어가 회문이다, 동등한 경우. 문구를 작성하는 방법을 알아 내야합니다.

"brute force it"을 사용하려면 한 단어를 움켜 잡고 키워드에서 시작하는 문자와 끝나는 문자로 끝나는 파일의 모든 단어를 찾아야합니다. 그런 다음 두 번째 편지를 잡고 새로운 위치에서 일치하는 문자가없는 단어를 목록에서 제거합니다. 그렇다면 더 많은 단어 등을 얻는 방법을 찾아야합니다. 어떻게 진행해야할지 모르겠습니다. 그러나 기본적으로, 파일에서 모든 단어를 소비 할 때까지 단어를 잡고 나서 파일의 다른 단어와 문자별로 비교해야합니다. 단어가 순서대로 맞으면 너무 나빠하지 않을 수도 있습니다. 그러나 단어가 순서가 맞지 않으면 단어를 다시 정렬하고 다시 시도해야합니다.