readLine ()의 기능을 수행하기 위해 내 코드에서 줄을 읽는 데 사용할 수있는 다른 방법이 있습니까?

아부 바 카르 올루 잉카

주석과 빈 줄을 제외하고 코드 줄을 세는 코드를 작성하고 있지만 BufferedReader 클래스에서만 사용되기 때문에 텍스트 변수가있는 readLine () 메서드 대신 무엇을 사용해야할지 고민하고 있습니다. BufferedReader를 사용하고 싶지 않습니다. 나는 그것이 String으로 남아 있기를 원합니다. 이 문제를 해결하려면 어떻게해야합니까?

public static int count(String text) {

        int count = 0;
        boolean commentBegan = false;
        String line = null;

        while ((line = text.readLine()) != null) {
            line = line.trim();
            if ("".equals(line) || line.startsWith("//")) {
                continue;
            }
            if (commentBegan) {
                if (commentEnded(line)) {
                    line = line.substring(line.indexOf("*/") + 2).trim();
                    commentBegan = false;
                    if ("".equals(line) || line.startsWith("//")) {
                        continue;
                    }
                } else
                    continue;
            }
            if (isSourceCodeLine(line)) {
                count++;
            }
            if (commentBegan(line)) {
                commentBegan = true;
            }
        }
        return count;
    }
private static boolean commentBegan(String line) {}
private static boolean commentEnded(String line) {}
private static boolean isSourceCodeLine(String line) {}

위에서 작성한 text.readLine ()은 오류가 발생하기 때문에 수행해야하는 것과 관련이 없습니다. commentBegan (), commentEnd () 및 isSourceCodeLine () 메서드에 대한 전체 코드를 작성했습니다. 내가 필요한 것은 readLine () 메서드의 문제를 해결하는 것입니다.

아란

내 제안은 루프 앞의 줄을 식별하고 메커니즘을 변경하는 것입니다.

public static int count(String text) {

    int count = 0;
    boolean commentBegan = false;
    String[] lines = text.split(System.getProperty("line.separator"));

    for (String line:lines) {
        //your logic here
    }

}

를 분할 text바이는 line.separator에 저장되어 그 안에 모든 라인을 반환합니다 array. 그것을 반복하고 거기에서 자신의 논리를 사용하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관