Codegym University 과정의 일부로 멘토와 함께하는 강의 스니펫. 전체 과정에 등록하십시오.


1 문자열 비교

문자열을 사용하는 가장 일반적인 작업 중 하나는 비교입니다. String 클래스에는 한 문자열을 다른 문자열과 비교하는 데 사용되는 10개 이상의 서로 다른 메서드가 있습니다. 아래에서 우리는 주요 항목 중 8개를 살펴보겠습니다.

행동 양식 설명
boolean equals(String str)
문자열은 모든 문자가 일치하면 동일한 것으로 간주됩니다.
boolean equalsIgnoreCase(String str)
대소문자를 무시하고 문자열을 비교합니다(대문자인지 소문자인지 무시).
int compareTo(String str)
문자열을 비교하고 문자열의 처음부터 일치하는 문자의 수를 반환합니다.
public int compareToIgnoreCase(String str)
대소문자를 무시하고 문자열 시작 부분에서 일치하는 문자 수를 반환합니다.
boolean regionMatches(int toffset, String str, int offset, int len)
문자열의 일부를 비교합니다.
boolean startsWith(String prefix)
현재 문자열이 문자열로 시작하는지 확인합니다.prefix
boolean endsWith(String suffix)
현재 문자열이 문자열로 끝나는지 확인합니다.suffix

사용자에게 파일 경로를 요청한 다음 확장자를 기반으로 파일 형식을 확인하는 프로그램을 작성한다고 가정해 보겠습니다. 이러한 프로그램의 코드는 다음과 같을 수 있습니다.

암호 노트
Scanner console = new Scanner(System.in);
String path = console.nextLine();

if (path.endsWith(".jpg") || path.endsWith(".jpeg"))
{
   System.out.println("This is a jpeg!");
}
else if (path.endsWith(".htm") || path.endsWith(".html"))
{
   System.out.println("This is an HTML page");
}
else if (path.endsWith(".doc") || path.endsWith(".docx"))
{
   System.out.println("This is a Word document");
}
else
{
   System.out.println("Unknown format");
}
Scanner개체 생성
콘솔에서 라인 읽기

문자열이 path주어진 문자열로 끝나는 지 확인


2 하위 문자열 검색

문자열을 비교한 후 두 번째로 많이 사용되는 작업은 문자열 내부에서 다른 문자열을 찾는 것입니다. String 클래스에는 이를 위한 몇 가지 메서드도 있습니다.

행동 양식 설명
int indexOf(String str)
str현재 문자열에서 문자열을 검색합니다 . 처음 나타나는 첫 번째 문자의 인덱스를 반환합니다.
int indexOf(String str, int index)
str현재 문자열에서 첫 번째 문자를 건너뛰고 문자열을 검색합니다 index. 발생 인덱스를 반환합니다.
int lastIndexOf(String str)
str현재 문자열에서 끝부터 시작하여 문자열을 검색합니다 . 처음 발생한 인덱스를 반환합니다.
int lastIndexOf(String str, int index)
str현재 문자열에서 첫 번째 문자를 건너뛰고 끝에서부터 문자열을 찾습니다 index.
boolean matches(String regex)
현재 문자열이 정규식으로 지정된 패턴과 일치하는지 확인합니다.

및 방법 indexOf(String)indexOf(String, index)종종 조합하여 사용됩니다. 첫 번째 방법을 사용하면 현재 문자열에서 전달된 하위 문자열의 첫 번째 항목을 찾을 수 있습니다. 두 번째 방법을 사용하면 첫 번째 색인 문자를 건너뛰어 두 번째, 세 번째 등의 항목을 찾을 수 있습니다.

" https://domain.com/about/reviews " 와 같은 URL이 있고 도메인 이름을 " codegym.cc " 로 바꾸고 싶다고 가정합니다 . URL은 모든 종류의 서로 다른 도메인 이름을 가질 수 있지만 다음을 알고 있습니다.

  • 도메인 이름 앞에 두 개의 슬래시("//")가 붙습니다.
  • 도메인 이름 뒤에 단일 포워드 슬래시(" /" )가 옵니다.

이러한 프로그램의 코드는 다음과 같습니다.

암호 노트
Scanner console = new Scanner(System.in);
String path = console.nextLine();

int index = path.indexOf("//");
int index2 = path.indexOf("/", index + 2);

String first = path.substring(0, index + 2);
String last = path.substring(index2);

String result = first + "codegym.cc" + last;
System.out.println(result);
스캐너 개체 만들기
콘솔에서 한 줄 읽기 " "

문자열의 첫 번째 인덱스 가져오기 문자열의 첫 번째 인덱스를 가져오지만 문자 발생 이후에만 찾습니다 . 우리는 문자의 처음부터 끝까지 문자열을 얻습니다. 우리는 문자열을 끝까지 얻습니다. 문자열과 새 도메인을 연결합니다.//
///
//
/

및 메소드는 동일한 방식으로 작동하며 문자열의 끝 lastIndexOf(String)에서 lastIndexOf(String, index)처음까지 검색만 수행됩니다.



3 하위 문자열 만들기

Codegym University 과정의 일부로 멘토와 함께하는 강의 스니펫. 전체 과정에 등록하십시오.


문자열을 비교하고 하위 문자열을 찾는 것 외에도 매우 인기 있는 또 다른 작업이 있습니다. 문자열에서 하위 문자열을 가져오는 것입니다. 공교롭게도 이전 예제에서는 substring()문자열의 일부를 반환하는 메서드 호출을 보여 주었습니다.

다음은 현재 문자열에서 하위 문자열을 반환하는 8가지 메서드 목록입니다.

행동 양식 설명
String substring(int beginIndex, int endIndex)
인덱스 범위로 지정된 하위 문자열을 반환합니다 beginIndex..endIndex.
String repeat(int count)
현재 문자열을 n번 반복
String replace(char oldChar, char newChar)
새 문자열 반환: 문자를 oldChar문자로 바꿉니다.newChar
String replaceFirst(String regex, String replacement)
현재 문자열에서 정규식으로 지정된 첫 번째 하위 문자열을 바꿉니다.
public String replaceAll(String regex, String replacement)
정규식과 일치하는 현재 문자열의 모든 하위 문자열을 바꿉니다.
String toLowerCase()
문자열을 소문자로 변환
String toUpperCase()
문자열을 대문자로 변환
String trim()
문자열의 시작과 끝에서 모든 공백을 제거합니다.

다음은 사용 가능한 방법에 대한 요약입니다.

substring(int beginIndex, int endIndex)방법

이 메서드는 index가 있는 문자에서 시작하여 에서 끝나는 substring현재 문자열의 문자로 구성된 새 문자열을 반환합니다 . Java의 모든 간격과 마찬가지로 인덱스가 있는 문자는 간격에 포함되지 않습니다. 예:beginIndexendIndexendIndex

암호 결과
"Hellos".substring(0, 3);
"Hel"
"Hellos".substring(1, 4);
"ell"
"Hellos".substring(1, 6);
"ellos"
"Hellos".substring(1);
"ellos"

매개변수가 지정되지 않은 경우 endIndex(가능한 경우) 하위 문자열은 beginIndex의 문자에서 문자열 끝까지 가져옵니다.

repeat(int n)방법

repeat 메소드는 단순히 현재 문자열을 반복합니다 n. 예:

암호 결과
"Hello".repeat(3);
"HelloHelloHello"
"Hello".repeat(2);
"HelloHello"
"Hello".repeat(1);
"Hello"
"Hello".repeat(0);
""

replace(char oldChar, char newChar)방법

이 메서드는 모든 문자가 문자로 대체된 replace()새 문자열을 반환합니다 . 이것은 문자열의 길이를 변경하지 않습니다. 예:oldCharnewChar

암호 결과
"Programming".replace('Z', 'z');
"Programming"
"Programming".replace('g', 'd');
"Prodrammind"
"Programming".replace('a', 'e');
"Progremming"
"Programming".replace('m', 'w');
"Prograwwing"

replaceFirst()replaceAll()방법

replaceAll()메서드는 한 하위 문자열의 모든 항목을 다른 하위 문자열로 바꿉니다. 이 replaceFirst()메서드는 전달된 하위 문자열의 첫 번째 항목을 지정된 하위 문자열로 바꿉니다. 바꿀 문자열은 정규식으로 지정됩니다. Java Multithreading 퀘스트 에서 정규 표현식에 대해 자세히 알아볼 것입니다 .

예:

암호 결과
"Good news everyone!".replaceAll("e.", "EX");
"Good nEXs EXEXyonEX"
"Good news everyone!".replaceAll("o.", "-o-");
"G-o-d news every-o-e!"
"Good news everyone!".replaceFirst("e.", "EX");
"Good nEXs everyone!"
"Good news everyone!".replaceFirst("o.", "-o-");
"G-o-d news everyone!"

toLowerCase() and toUpperCase()행동 양식

우리는 클래스의 메서드 호출에 대해 처음 배웠을 때 이러한 메서드를 알게 되었습니다 String.

trim()방법

trim()메서드는 문자열에서 선행 및 후행 공백을 제거합니다. 문자열 내부에 있는 공백을 건드리지 않습니다(즉, 처음이나 끝에 있지 않음). 예:

암호 결과
"     ".trim();
""
"Hello".trim();
"Hello"
" Hello\n how are you?\n   ".trim();
"Hello\n how are you?\n"
"  Password\n   \n ".trim();
"Password\n   \n"