자바 배열
배열은 동일한 데이터 유형의 데이터 모음입니다. Java는 대부분 배열을 지원합니다. 1차원 배열의 각 기본 단위는 기본 데이터 유형의 데이터입니다. 1차원 배열, 배열 등 n차원 배열의 각 기본 단위는 n-1 배열의 n-1차원 배열입니다. 다음은 Java 배열의 사용법을 설명하기 위해 1차원 배열을 예로 사용합니다.
1. 배열 선언
배열 선언은 다음과 같은 두 가지 형식을 갖습니다(대괄호의 위치는 다릅니다).
int arr[];int[] arr2;
2. 어레이 초기화
배열 초기화에는 다음과 같은 두 가지 형태가 있습니다(new 사용 또는 new 사용 안 함).
int arr[] = 새로운 int[]{1, 3, 5, 7, 9} int[] arr2 = {2, 4, 6, 8, 10};
3. 어레이 탐색
다음과 같이 for/foreach를 사용하여 배열을 탐색할 수 있습니다.
public static void main(String[] args) { int arr[] = new int[]{1, 3, 5, 7,9} int[] arr2 = {2, 4, 6, 8, 10}; (int i = 0; i < arr.length; ++i) { System.out.print(arr[i] + "/t") // 1 3 5 7 9 } for (int x: arr2) { System.out.print(x + "/t") // 2 4 6 8 10 } }
4. Arrays.fill()은 배열을 채웁니다.
Arrays 클래스의 정적 메소드를 사용하려면 오버로드된 많은 메소드를 정의하는 java.util.Arrays 패키지를 가져와야 합니다.
void fill(int[] a, int val) 모두 채우기
void fill(int[] a, int fromIndex, int toIndex, int val) 지정된 인덱스의 요소를 채웁니다.
int[] arr3 = new int[5]; for (int x: arr3) { System.out.print(x + "/t"); // 0 0 0 0 0 모두 0으로 초기화됨 } System.out.println (); Arrays.fill(arr3, 10); for (int x: arr3) { System.out.print(x + "/t"); 10 10 모두 10으로 채웁니다. } System.out.println(); Arrays.fill(arr3, 1, 3, 8) for (int x: arr3) { System.out.print(x + "/t"); // 10 8 8 10 10 지정된 인덱스를 채웁니다. } System.out.println();
5. Arrays.sort()는 배열을 정렬합니다.
void sort(int[] a) 모두 정렬
void sort(int[] a, int fromIndex, int toIndex) 지정된 인덱스의 요소를 정렬합니다.
int[] arr4 = {3, 7, 2, 1, 9}; Arrays.sort(arr4); for (int x: arr4) { System.out.print(x + "/t"); 3 7 9 } System.out.println(); int[] arr5 = {3, 7, 2, 1, 9}; 1, 3); for (int x: arr5) { System.out.print(x + "/t") // 3 2 7 1 9 } System.out.println();
6. Arrays.copyOf()는 배열을 복사합니다.
int[] copyOf(int[] 원본, int newLength) 배열을 복사하고 새 배열 길이를 지정합니다.
int[] copyOfRange(int[] original, int from, int to) 복사된 원본 배열의 인덱스를 지정하여 배열을 복사합니다.
int[] arr6 = {1, 2, 3, 4, 5}; int[] arr7 = Arrays.copyOf(arr6, 5); // 1 2 3 4 5 int[] arr8 = Arrays.copyOfRange(arr6, 1 , 3); // 2 3 for (int x: arr7) { System.out.print(x + "/t"); } System.out.println(); for (int x: arr8) { System.out.print(x + "/t") } System.out.println();
자바 문자열
Java 문자열 유형은 String 클래스입니다. 다음은 문자열을 조작하는 방법을 설명합니다.
1. 문자열 연결
문자열 연결에서는 다음 예와 같이 "+" 기호를 사용합니다.
String s = new String("Hello"); String s2 = new String("World") System.out.println(s + " " + s2);
2. 문자열 길이 얻기
문자열의 길이를 얻으려면 다음 예와 같이 str.length()를 사용하십시오.
String s3 = new String("Hello Java"); System.out.println(s3.length());
3. 지정된 문자열의 인덱스를 가져옵니다.
지정된 문자열의 인덱스를 얻으려면 다음 예에 표시된 대로 str.indexOf(substr), str.lastIndexOf(substr)를 사용하십시오.
String s4 = new String("잘 지내세요"); System.out.println(s4.indexOf("o")); // 1 다음에서 System.out.println(s4.lastIndexOf("o"))를 찾습니다. 시작 ; // 9 끝부터 검색
4. 지정된 인덱스의 문자를 가져옵니다.
지정된 인덱스의 문자를 가져오려면 다음 예제와 같이 str.charAt(index)를 사용하십시오.
String s5 = new String("Hello Java"); System.out.println(s5.charAt(4));
5. 문자열에서 공백을 제거합니다.
문자열에서 공백을 제거하는 방법에는 여러 가지가 있습니다. str.trim() 또는 str.replaceAll(regex, replacement)을 사용하여 문자열을 공백으로 구분할 수도 있습니다. 사용 전 StringTokenizer, 다음 예:
String s6 = new String(" Hello Java "); String s7 = s6.trim(); // 문자열의 시작과 끝에서 공백을 제거합니다. String s8 = s6.replaceAll(" ", ""); 문자 문자열의 모든 공백 StringTokenizer st = new StringTokenizer(s6, " "); // 공백을 사용하여 문자열을 구분합니다. StringBuffer sb = new StringBuffer(); (st.hasMoreTokens()) { sb.append(st.nextToken()) } System.out.println("/"" + s6 + "/"" + "length = " + s6.length()); // "안녕하세요 자바 "length = 14 System.out.println("/"" + s7 + "/"" + "length = " + s7.length()) // "안녕하세요" Java"length = 10 System.out.println("/"" + s8 + "/"" + "length = " + s8.length()); // "HelloJava"length = 9 System.out.println(" /"" + sb.toString() + "/"" + "length = " + sb.toString().length()); // "HelloJava" 길이 = 9
6. 문자열 교체
대체 문자열은 다음 예와 같이 모든 하위 문자열 또는 첫 번째 하위 문자열을 대체할 수 있습니다.
String sr = new String("abc abd bcd"); String sr2 = sr.replace("ab", "xx"); // 모든 하위 문자열 교체 String sr3 = sr.replaceFirst("ab", "xx") ; // 첫 번째 문자열 교체 System.out.println(sr2); // "xxc xxd bcd" System.out.println(sr3); "xxc adb bcd"
7. 문자열 판단
아래와 같이 문자열 내용 동일성, 대소문자 무시 여부, 메모리 주소 동일성, 문자열 시작 또는 끝 판단 등과 같은 문자열 동일성에는 여러 가지 상황이 있습니다.
String se = new String("여름은 너무 더워요"); String se1 = new String("여름은 너무 더워요"); String se2 = new String("여름은 너무 더워요") String se3 = se; .println(se == se1); // false는 문자열 내용 대신 메모리를 비교합니다. System.out.println(se == se3); // true System.out.println(se.equals(se1)); 문자열 내용 비교 System.out.println(se.equals(se2)); // false System.out.println(se.equalsIgnoreCase(se2)); // true 대소문자 무시 System.out.println(se2.startsWith (" summer")); // true는 문자열을 시작합니다. System.out.println(se2.endsWith("cold")); // false는 문자열을 끝냅니다.
8. 문자열 대소문자 변환
문자열 대소문자 변환의 예는 다음과 같습니다.
String sc = new String("hello WORLD"); String scl = sc.toLowerCase(); // hello world는 소문자로 변환됩니다. String scu = sc.toUpperCase(); // HELLO WORLD는 대문자로 변환됩니다. println(scl + " " + scu);
9. 문자열 분리
문자열 구분 기호는 다음과 같습니다.
String ss = new String("abc,def,g,h"); String[] ss2 = ss.split(","); // 쉼표로 구분 for (String x: ss2) { System.out.print( x + "/t"); // abc def gh }
10. 형식 문자열
날짜 형식, 시간 형식, 소수 변환 등과 같은 다양한 형식의 문자열 형식이 있습니다. Date 클래스를 사용하려면 다음 예에 표시된 대로 가져오기 패키지 java.util.Date가 필요합니다.
Date d = new Date(); System.out.println(d); // Wed Jul 22 16:00:36 CST 2015 기본 형식 System.out.println(String.format("%tm", d)); // 07 두 자리 월 System.out.println(String.format("%tH", d)) // 16 두 자리 24시간 system.out.println(String.format("%x", 256)) // 100자리 16진수
11. String, StringBuffer, StringBuilder 클래스 비교
String: 문자열 상수, 불변 객체. 변수 내용이 변경되면 실제로 새로운 String 객체가 생성됩니다. 변수 내용이 여러 번 자주 변경되면 시스템 성능에 영향을 미치며, 특히 GC가 작동하기 시작합니다. . , 프로그램 속도가 매우 느려집니다.
StringBuffer: 문자열 변수, 스레드로부터 안전함. 변수 내용이 변경되면 실제로 동일한 객체가 동작하므로 효율성이 String 유형보다 높습니다.
StringBuilder: StringBuffer와 호환되지만 스레드로부터 안전하지 않은 문자열 변수입니다. 단일 스레드인 경우 StringBuilder를 먼저 사용하면 StringBuffer보다 빠릅니다.