2017-10-28 3 views
0

"abc @ df"와 같은 문자열이 주어진 경우 '@'문자는 '%', '^', '&'등과 같이 문자가 아닌 다른 문자가 될 수 있습니다. 그 색인을 찾는 가장 효율적인 방법이 될까요? for 루프는 (문자열 길이에 따라) 종류가 빠르지 만, 다른 빠른 메서드는 어떨까요? 비 알파벳 문자 또는 주어진 색인에 가장 가까운 색인 (예 : indexOf (string, startingIdx))의 모든 색인을 찾는 메소드 고마워요! 각 문자는 문자 (또는 다른 타입)인지 확인 문자 클래스를 사용할 수 있습니다, 루프자바 - 문자열에서 알파벳이 아닌 문자를 찾는 방법은 무엇입니까? (빠른 방법)

Pattern patt = Pattern.compile("[^A-Za-z]"); 
    Matcher mat = patt.matcher("[email protected]"); 
    boolean found = mat.find(); 
    System.out.println(found ? mat.start() : -1); 
+1

indexOf의 구현을 살펴 본다면 루프를 찾을 수있을 것입니다. 이 코드를 사용하면 루프를 작성할 필요가 없다는 장점이 있습니다. 최상의 코드는 작성하지 않은 코드이기 때문에 좋은 것입니다. – Bill

+0

@Bill 나는 명확히하지 않았다고 생각한다. 영문자가 아닌 문자의 색인을 찾는 방법을 찾으십시오. 거대한 범위의 비 알파벳 문자가 있기 때문에 찾고있는 문자를 구체적으로 모르기 때문에 indexOf()를 사용할 수 없습니다. 희망이 도움이! – Jsbbvk

+0

물론이 사실은 내가 대답을 제안하는 대신 의견을 남겼다는 이유 중 하나입니다. – Bill

답변

1

A :

관련 문제