728x90
반응형
다이어그램 만들기2
+OneClass public class OneClass {
 private static OneClass ocs ;
 private int iNum ;

 private OneClass ( ) { }
 public static OneClass ( ) {
         return 값; }
 public int getINum ( ) {
         return 값; }
 public void getINum ( int iNum ) { }
}
- ocs : OneClass
- iNum : int
- OneClass()
+ getIns ( ) : OneClass
+ getINum ( ) : int
+ getINum( iNum : int ) : void
Ex01.java

String

package one;

public class Ex01 {

	public static void main(String[] args) {
		//직접 문자열을 지정(canonical 문자열)
		//단축(shorthand) 초기화로 객체 생성
		String s1 = "Java Korea";
		
		String s2 = new String("Java Korea");
		
		//s2 문자열을 canonical 문자열로 전환
		String s3 = s2.intern();
		
		//단축 초기화로 객체 생성
		String s4 = "Java Korea";
		
		System.out.println(">> String 객체가 참조하는 주소가 같은지 비교");
		System.out.println("s1 == s2 : " + (s1 == s2));
		System.out.println("s2 == s3 : " + (s2 == s3));
		System.out.println("s1 == s3 : " + (s1 == s3));
		System.out.println("s1 == s4 : " + (s1 == s4));

		System.out.println(">> String 데이터 값(내용)이 같은지 비교");
		System.out.println(s1.equals(s2)); //equals "문자열값"을 비교할때 사용하는 method
		System.out.println(s2.equals(s3));
		System.out.println(s1.equals(s3));
		System.out.println(s1.equals(s4));
		
		System.out.println(">> String 데이터의 해쉬코드");
		System.out.println(s1.hashCode()); //hashCode : 식별자료값이 위치한주소
		System.out.println(s2.hashCode());
		System.out.println(s3.hashCode());
		System.out.println(s4.hashCode());
		
		System.out.println(">> String 데이터의 식별해쉬코드");
		System.out.println(System.identityHashCode(s1)); //identity : 식별자료가 위치한 주소
		System.out.println(System.identityHashCode(s2));
		System.out.println(System.identityHashCode(s3));
		System.out.println(System.identityHashCode(s4));
		
		//해당 객체가 해당 자료형이 맞는지 확인
		String str = "Hello";
		System.out.println( str instanceof String); //str이 String에 속하는 객체인지 확인 
		//instanceof 객체이상 비교형으로 기본자료형에서는 사용불가
	}
}​


package java.lang 는 소속 및 별도 import없이 접근가능

 

String str = "파랗다" ; 단축형식

          2           1

String str1 = new String("파랗다"); 공간부터 할당

 

String str2 = "파랗다"

 

 

String

은 고정형 자료형이기 때문에
값이 바뀌면 주소값이 바뀐다.
원본훼손이 일어나지 않는다.

 

 

Ex02.java
String
package one;

public class Ex02 {

	public static void main(String[] args) {
		//concat : 문자열 뒤로 추가 형식 : 문자열객체.concat("뒤에 추가할 문자열");
		String str = new String("Java"); //&100 객체명 부여
		System.out.println("원본 문자열 : " + str);
		System.out.println(str.hashCode());
		
		System.out.println(str.concat("수업")); //&200 객체명 부여x
		System.out.println("concat() 메소드 호출 후 원본 문자열 : " + str);
		System.out.println(str.hashCode());
		System.out.println(str.concat("수업").hashCode());
		
	}

}
원본 문자열 : Java
2301506
Java수업
concat() 메소드 호출 후 원본 문자열 : Java
2301506
-2081629073

concat

concat : 문자열 뒤로 추가 
형식 : 문자열객체.concat("뒤에 추가할 문자열");
concat을 부여하더라도 String 주소값, 원본은 바뀌지 않는다. 

[ctrl] + click = return타입 확인

Ex03.java
trim
package one;

public class Ex03 {

	public static void main(String[] args) {
		String str1 = new String("해피썬데이");
		
		System.out.println("기존 str1의 길이 : " + str1.length()); //문자열의 길이
		str1 = "  " + str1 + "   "; //앞에 2개, 뒤에 3개의 공백 추가
		System.out.println("공백 추가된 str1의 길이 : " + str1.length());
		str1 = str1.trim(); //trim 문자열내 문자열 양쪽 끝 공백제거 메소드
		System.out.println("공백 제거된 str1의 길이 : " + str1.length());
		
		char ch = str1.charAt(2);
		//charAt(인덱스번호) 특정 위치에 있는 문자 한 개 
		System.out.println(str1 + "의 charAt(2) : " + ch);
		
		//substring(값1) : 값1에 해당되는 인덱스번호의 문자열부터 마지막문자열까지 가져오세요
		//substring(값1,값2) : 값1에 해당되는 인덱스번호부터 (값2-1)을 한 인덱스 번호에 해당되는 문자열까지 가져오세요
		
		String str2 = str1.substring(3);
		//문자열의 일부분을 발췌
		//3번 인덱스 ~ 끝까지
		System.out.println(str1 + "의 substring(3) : " + str2);
	
		String str3 = str1.substring(2, 4);
		//2번 ~ (4 - 1)번 인덱스
		System.out.println(str1 + "의 substring(2, 4) : " + str3);
	}

}​
기존 str1의 길이 : 5
공백 추가된 str1의 길이 : 10
공백 제거된 str1의 길이 : 5
해피썬데이의 charAt(2) : 썬
해피썬데이의 substring(3) : 데이
해피썬데이의 substring(2, 4) : 썬데​
Ex04.java
contains
package one;

public class Ex04 {

	public static void main(String[] args) {
		//contains : 문자열 포함 여부
		String str = "my java test";
		
		System.out.println( str.contains("java"));
		System.out.println( str.contains(" my"));
		System.out.println( str.contains("JAVA"));
		System.out.println( str.contains("java test"));
		
	}

}​
true
false
false
true​
Ex05.java
//replace //replaceall
package one;

public class Ex05 {

	public static void main(String[] args) {
		//문자열 치환 : replace, replaceAll(정규표현식 사용가능)
		//replace("기존문자열", "변경할 문자열");
		String b = "Welcome to Java World";
		System.out.println(b.replace("Java", "Computer"));
		System.out.println(b.replaceAll("Java", "Computer"));
		
		String str = "abcdefghijk";
		System.out.println("result ===> " + str.replaceAll("[abchij]", "굿")); //[배열]해당 문자열 변경
		System.out.println("result ===> " + str.replaceAll("[^abchij]", "굿")); //[^]해당 문자열 제외하고 변경
		System.out.println("result ===> " + str.replace("a", "굿").replace("b", "굿").replace("c", "굿").replace("h", "굿").replace("i", "굿").replace("j", "굿"));
		//체인기법 연쇄적인 접근연산으로 변경
		System.out.println("result ===> " + str.replace("abc", "굿굿굿").replace("hij", "굿굿굿"));
		
		
	}

}​
Welcome to Computer World
Welcome to Computer World
result ===> 굿굿굿defg굿굿굿k
result ===> abc굿굿굿굿hij굿
result ===> 굿굿굿defg굿굿굿k
result ===> 굿굿굿defg굿굿굿k
728x90
반응형

'[JAVA]' 카테고리의 다른 글

[11일차 오후] 상속 오버라이딩  (0) 2023.12.26
[11일차 오전] 아스테리스크  (0) 2023.12.26
[20231222] 10일차  (0) 2023.12.22
[20231221] 9일차 오후  (0) 2023.12.22
[20231221] 9일차 오전  (0) 2023.12.21

+ Recent posts