๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€/Java

[11์ผ์ฐจ] ๋ฌธ์ž์—ด String

Ex36 ~ Ex37

 

๋ฌธ์ž์—ด > ๋ฌธ์ž์˜ ์ง‘ํ•ฉ

String > char[]

 

๋ฌธ์ž์—ด ์ถ”์ถœ

- char charAt(int index)

 

char์ธ ์ˆซ์ž๋ฅผ ์ง„์งœ ์ˆซ์ž๋กœ ๋ฐ”๊พธ๊ธฐ ('1' > 1)

System.out.println('1' - 48);
System.out.println('9' - 48);

 

๋ฌธ์ž์—ด ๊ณต๋ฐฑ ์ œ๊ฑฐ

String trim()

-๋ฌธ์ž์—ด์— ์กด์žฌํ•˜๋Š” ๊ณต๋ฐฑ(Whitespace > ์ŠคํŽ˜์ด์Šค, ํƒญ, ๊ฐœํ–‰)์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฉ”์†Œ๋“œ
- ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์— ์žˆ๋Š” ๊ณต๋ฐฑ์„ ์ œ๊ฑฐ

String txt = "     ํ•˜๋‚˜     ๋‘˜     ์…‹     ";
		
System.out.printf("[%s]\n", txt);
System.out.printf("[%s]\n", txt.trim());
		
		
String s1 = "์ž๋ฐ”";
String s2 = "  ์ž๋ฐ”  ";
System.out.println(s1.equals(s2));

 

๋ฌธ์ž์—ด ๊ฒ€์ƒ‰

- boolean contains(String)

String txt = "ํ™๊ธธ๋™๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”.";
		
//boolean contains(CharSequence s) > String ๋„ฃ์–ด๋„ ๋จ
System.out.println(txt.contains("ํ™๊ธธ๋™"));
System.out.println(txt.contains("์•„๋ฌด๊ฐœ"));
		
System.out.println("950215-2012457".contains("-"));

 

๋ฌธ์ž์—ด ๊ฒ€์ƒ‰

-int indexOf (์™ผ์ชฝ > ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ํƒ์ƒ‰)

-int lastIndexOf (์˜ค๋ฅธ์ชฝ > ์™ผ์ชฝ)

txt = "์•ˆ๋…•ํ•˜์„ธ์š”. ํ™๊ธธ๋™์ž…๋‹ˆ๋‹ค. ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค ํ™๊ธธ๋™์ž…๋‹ˆ๋‹ค. ๋„ค ํ™๊ธธ๋™์ž…๋‹ˆ๋‹ค.";
		
index = 0;
		
while (true) {
			
	index = txt.indexOf("ํ™๊ธธ๋™", index);
			
	if (index == -1) {
		break;
	}
			
	System.out.println(index);
			
	index = index + 3;
			
}

 

๊ธˆ์ง€์–ด ์ฐพ๊ธฐ

.contains()

String content = "์•ˆ๋…•ํ•˜์„ธ์š”. ์ €๋Š” ์ž๋ฐ”๋ฅผ ๋ฐฐ์šฐ๋Š” ํ•™์ƒ์ž…๋‹ˆ๋‹ค.";
String word = "๋ฐ”๋ณด"; //๊ธˆ์ง€์–ด

if (content.contains(word)) {
	System.out.println("๊ธˆ์ง€์–ด ๋ฐœ๊ฒฌ!!");
} else {
	System.out.println("๊ธ€์“ฐ๊ธฐ ์ง„ํ–‰..");
}

if (content.indexOf(word) > -1) {
	System.out.println("๊ธˆ์ง€์–ด ๋ฐœ๊ฒฌ!!");
} else {
	System.out.println("๊ธ€์“ฐ๊ธฐ ์ง„ํ–‰..");
}



content = "์•ˆ๋…•ํ•˜์„ธ์š”. ์ €๋Š” ์ž๋ฐ”๋ฅผ ๋ฐฐ์šฐ๋Š” ํ•™์ƒ์ž…๋‹ˆ๋‹ค.";
String[] words = { "๋ฐ”๋ณด", "๋ฉ์ฒญ์ด", "๋ฉ”๋กฑ" };

for (int i=0; i<words.length; i++) {
	
	if (content.indexOf(words[i]) > -1) {
		System.out.println("๊ธˆ์ง€์–ด ๋ฐœ๊ฒฌ!!");
		break;
	}
	
}

System.out.println("์™„๋ฃŒ");

 

๋ฌธ์ž์—ด ๋Œ€์†Œ๋ฌธ์ž ๋ณ€๊ฒฝ

- String toUpperCase() > ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜
- String toLowerCase() > ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜

String content = "์˜ค๋Š˜ ์ˆ˜์—…์€ String Method์ž…๋‹ˆ๋‹ค.";
String word = "string";


if (content.toLowerCase().indexOf(word.toLowerCase()) > -1) {
	System.out.println("O");
} else {
	System.out.println("X");
}



System.out.println(content.toUpperCase());
System.out.println(content.toLowerCase());

System.out.println("Java".equals("java")); 
System.out.println("Java".toUpperCase().equals("java".toUpperCase()));

 

ํŒจํ„ด ๊ฒ€์ƒ‰

- boolean startWith(String)
- boolean endsWidth(String)

String txt = "์ž๋ฐ” ๊ฐœ๋ฐœ์ž ๊ณผ์ •";
		
System.out.println(txt.startsWith("์ž๋ฐ”"));
System.out.println(txt.startsWith("์˜ค๋ผํด"));
System.out.println(txt.indexOf("์ž๋ฐ”") == 0);

 

 

๋ฌธ์ž์—ด ์ถ”์ถœ

- String substring(int beginIndex, int endIndex) > end ํฌํ•จx
- String substring(int beginIndex)

String txt = "๊ฐ€๋‚˜๋‹ค๋ผ๋งˆ๋ฐ”์‚ฌ์•„์ž์ฐจ์นดํƒ€ํŒŒํ•˜";
		
System.out.println(txt.substring(3, 7)); //3~6
System.out.println(txt.substring(5, 6)); //5~5 > "๋ฐ”"
System.out.println(txt.charAt(5)); 		 //	   > '๋ฐ”' > ๋ฌธ์ž์ฝ”๋“œ


//ํŒŒ์ผ ๊ฒฝ๋กœ > ํŒŒ์ผ๋ช…?
//๋งˆ์ง€๋ง‰ ์—ญ์Šฌ๋ž˜์‹œ์ฐพ๊ธฐ
String path = "C:\\class\\code\\java\\JavaTest\\src\\com\\test\\java\\Ex36_String.java";

int index = path.lastIndexOf("\\");
//System.out.println(index);

String filename = path.substring(index + 1);
System.out.println(filename); //ํŒŒ์ผ๋ช… ์ถ”์ถœ

//Ex36_String.java

//ํ™•์žฅ์ž ์—†๋Š” ํŒŒ์ผ๋ช… ์ถ”์ถœ
index = filename.lastIndexOf(".");

String filenameWithoutExtension = filename.substring(0, index);
System.out.println(filenameWithoutExtension);


//ํ™•์žฅ์ž ์ถ”์ถœ
String extension = filename.substring(index);
System.out.println(extension);

 

 

๋ฌธ์ž์—ด ์น˜ํ™˜(๋ฐ”๊พธ๊ธฐ) & ๋งˆ์Šคํ‚น

- String replace(String old, String new)

String txt = "์•ˆ๋…•ํ•˜์„ธ์š”. ํ™๊ธธ๋™์ž…๋‹ˆ๋‹ค.";

//txt = txt.replace("ํ™๊ธธ๋™", "์•„๋ฌด๊ฐœ"); >>์›๋ณธ ์ˆ˜์ •

System.out.println(txt.replace("ํ™๊ธธ๋™", "์•„๋ฌด๊ฐœ"));

System.out.println(txt);



String content = "๊ฒŒ์‹œํŒ์— ๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋ณด์•ผ!!";
String word = "๋ฐ”๋ณด";

//๊ธˆ์ง€์–ด ์•ˆ๋ณด์ด๊ฒŒ ์ฒ˜๋ฆฌ > Masking
System.out.println(content.replace(word, "**"));

//replace์—์„œ ""(๋นˆ๋ฌธ์ž์—ด)๋กœ ๋ฐ”๊พธ๊ธฐ > ์›ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์‚ญ์ œํ•˜๊ธฐ!!!!!
System.out.println(content.replace(word, ""));

 

 

๋ฌธ์ž์—ด ๋ถ„๋ฆฌ

- String[] split(String delimiter)

- ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด ์ž๋ฅด๋Š” ๋ฉ”์†Œ๋“œ

String name = ",ํ™๊ธธ๋™,,์•„๋ฌด๊ฐœ,ํ•˜ํ•˜ํ•˜,";
		
String[] list = name.split(","); //๊ตฌ๋ถ„์ž๋Š” ์‚ฌ๋ผ์ง„๋‹ค
		
for (int i=0; i<list.length; i++) {
	System.out.println(list[i] + "," + list[i].length());
}

 

๋ฌธ์ž์—ด ๋น„๊ต

String s1 = "Hong";
String s2 = "hong";

System.out.println(s1.compareTo(s2));
System.out.println(s1.compareToIgnoreCase(s2));

 

String์„ char[]๋กœ 

String s5 = "ํ™๊ธธ๋™";
char[] clist = s5.toCharArray(); 
System.out.println(Arrays.toString(clist));

 

 

 


1. ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณต๊ฐ„์€ ํ•œ๋ฒˆ ํ• ๋‹น๋˜๋ฉด ๋” ์ด์ƒ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜ ์—†๋‹ค.
2. "๋ฌธ์ž์—ด์€ ๋ถˆ๋ณ€(Immutable)์ด๋‹ค." > ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด์ง„ ๋ฌธ์ž์—ด์€ ์ ˆ๋Œ€ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.
3. ๋ฌธ์ž์—ด์€ ์ฐธ์กฐํ˜•์ด๋‹ค. 

 

๋ฌธ์ž์—ด > ํ•˜๋ฉด ์•ˆ๋˜๋Š” ํ–‰๋™(๋ฉ”๋ชจ๋ฆฌ ๋งŽ์ด ์†Œ์š”)
1. ํฐ ๋ฌธ์ž์—ด ์กฐ์ž‘
2. ์žฆ์€ ๋ฌธ์ž์—ด ์กฐ์ž‘

 

StringBuilder

-ํšจ์œจ์ ์œผ๋กœ ๋ฌธ์ž์—ด ์กฐ์ž‘ ๊ฐ€๋Šฅ

StringBuilder name2 = new StringBuilder("ํ™๊ธธ๋™");

 

String๊ณผ StringBuilder ์ฒ˜๋ฆฌ ์†๋„ ๋น„๊ต

long begin = System.currentTimeMillis();
long begin = System.nanoTime();

String txt1 = "ํ™๊ธธ๋™";

for (int i=0; i<100000; i++) {
	txt1 = txt1 + "."; //์žฆ์€ ์ˆ˜์ •
}

long end = System.nanoTime();

System.out.println(txt1.length()); //100003
System.out.println(end - begin + "ns"); //6.1s



begin = System.nanoTime();

StringBuilder txt2 = new StringBuilder("ํ™๊ธธ๋™");

for (int i=0; i<100000; i++) {
	txt2.append("."); //txt2 = txt2 + "."
}

end = System.nanoTime();

System.out.println(txt2.length()); //100003
System.out.println(end - begin + "ns");

//		100003
//		5.206526700ns > String
//		
//		100003
//		0.004093900ns > StringBuilder