FIF's 코딩팩토리

자바 기초 NCS교육과정(23)-문자열 본문

Back-End/국비 NCS교과과정

자바 기초 NCS교육과정(23)-문자열

FIF 2019. 7. 31. 11:01
반응형

Java115_String.java

class StringTest {
	private char[] arr;

	public StringTest() {

	}

	public StringTest(char[] arr) {
		this.arr = arr;
	}

	public char[] toChar() {
		return arr;
	}

	public int length() {
		return arr.length;
	}

	public char charAt(int index) {
		return arr[index];
	}

	public boolean isUpperCase(int index) {// is나has로 시작되는 메쏘드는 대부분 논리값
		if (arr[index] >= 'A' && arr[index] <= 'Z')
			return true;
		else
			return false;

		/* return arr[index]>='A' && arr[index]<='Z'; */
	}
}

public class Java115_String {

	public static void main(String[] args) {
		char[] data = new char[] { 'j', 'A', 'v', 'a' };
		StringTest st = new StringTest(data);
		System.out.println(st.toChar());
		// System.out.printf("%s\n",st.toChar());
		System.out.println(st.length());
		System.out.println(st.charAt(2));
		System.out.println(st.isUpperCase(1));
		System.out.println(st.isUpperCase(0));

	}

출력결과

 

 문자열 관련 클래스
  java.lang.String
  java.lang.StringBuffer
  java.lang.StringBuilder
  java.util.StringTokenizer

 

Java116_String.java

public class Java116_String {
	public static void main(String[] args) {
		String sn = "java";
		String sg = "java";
		String st = new String("java");
		String ss = new String("java");

		System.out.printf("sn==sg:%b\n", sn == sg);// true 주소를 비교
		System.out.printf("st==ss:%b\n", st == ss);// false 주소를 비교

		System.out.printf("sn.quals(sg):%b\n", sn.equals(sg));// 문자열을 비교
		System.out.printf("st.quals(ss):%b\n", st.equals(ss));// 문자열을 비교

		// toString( ) 메모리에 저장된 문자열 리턴
		System.out.println(sn.toString());
		System.out.println(sn);
	}

}

출력결과

 

배열크기 : length키워드
문자열길이 : length()메소드

 

Java117_String.java

public class Java117_String {

	public static void main(String[] args) {
		String str = new String("KoREa,jsp,java");
		System.out.println("문자열 길이:" + str.length());
		System.out.println("대문자:" + str.toUpperCase());
		System.out.println("소문자:" + str.toLowerCase());
		System.out.println("문자:" + str.charAt(1));
		System.out.println("인덱스:" + str.indexOf('a'));
		System.out.println("인덱스:" + str.indexOf(97));

		// 5인덱스부터 마지막까지 문자열 리턴
		// ,jsp,java
		System.out.println("범위:" + str.substring(5));
		// 2인덱스부터 8미만까지 문자열 리턴
		// REa,js
		System.out.println("범위:" + str.substring(2, 8));

		String[] arr = str.split(",");
		for (String data : arr)
			System.out.println(data);

		int x = 10;
		int y = 20;
		String s1 = String.valueOf(x);
		String s2 = String.valueOf(y);
		System.out.printf("%s + %s = %s\n", s1, s2, s1 + s2);

		char[] dn = { '1', '2', '3' };
		String s3 = String.valueOf(dn);
		System.out.println(s3);

	}

}

출력결과

 

Java118_String.java

public class Java118_String {

	public static void main(String[] args) {
		String sn = "127.0.0.1:8080";

		int index = sn.indexOf(":");
		System.out.println("ip:" + sn.substring(0, index));
		System.out.println("port:" + sn.substring(index + 1));
		System.out.println();
		
		String[] arr = sn.split(":");
		System.out.println("ip:" + arr[0]);
		System.out.println("port:" + arr[1]);

	}

}

출력결과

 

Java119_String.java

public class Java119_String {

	public static void main(String[] args) {
		String sn = "korea";
		char[] data = display(sn);
		System.out.println(data);
		System.out.println(sn);

	}

	public static char[] display(String alpa) {
		char[] data = new char[alpa.length()];
		for (int i = 0; i < alpa.length(); i++) {
			data[i] = alpa.charAt(alpa.length() - 1 - i);
		}

		return data;
	}

}

출력결과

 

1 매개변수로 받은 메시지 문자열에서 적절한 제품정보를 추출하여 
  콘솔에 출력하는 handleMessage() 메서드를 구현하시오.
  단, 메시지 형식은 "제품아이디:제품명:가격:수량:제조사" 
  순서로 구성되어야 한다.
  만약 메시지를 구성하는 요소가 적을 경우
  실행 결과와 동일한 메시지를 사용자에게 보여줘야 한다.
  
2 출력결과
<< 첫 번째 메시지 >>
제품 아이디 : PROD-00001
제품명 : iPhone4
가격 : 940000
수량 : 4
제조사 : 애플
<< 두 번째 메시지 >>
메시지 형식이 잘못되었습니다.
메시지는 제품아이디:제품명:가격:수량:제조사 형식이어야 합니다.

 

Java120_String.java

public class Java120_String {
	public static void main(String[] args) {
		System.out.println("<< 첫 번째 메시지 >>");
		handleMessage("PROD-00001:iPhone4:940000:4:애플");
		System.out.println("<< 두 번째 메시지 >>");
		handleMessage("PROD-00002:갤럭시S:960000:삼성");
	}// end main()

	private static void handleMessage(String str) {
		// 제품아이디, 제품명, 가격, 수량, 제조사를 출력하는 프로그램을 구현하시오.
		String[] arr = str.split(":");
		if (arr.length == 5) {
			System.out.println("제품 아이디 :" + arr[0]);
			System.out.println("제품명 :" + arr[1]);
			System.out.println("가격 :" + arr[2]);
			System.out.println("수량 :" + arr[3]);
			System.out.println("제조사 :" + arr[4]);
		} else {
			System.out.println("메시지 형식이 잘못되었습니다.\n메시지는 제품아이디:제품명:가격:수량:제조사 형식이어야 합니다.");
		}
	}// end handleMessage()
}// end class

출력결과

 

Java121_String.java

public class Java121_String {

	public static void main(String[] args) {
		String stn = new String("java_jsp_spring");
		System.out.println(process(stn.toCharArray()));
		
	}

	public static char[] process(char arr[]) {
		// '_'를 ' '으로 변환후 리턴하는 프로그램을 구현
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] == '_') {
				arr[i] = ' ';
			}
		}
		return arr;

	}

}

출력결과

 

Java122_String.java

public class Java122_String {

	public static void main(String[] args) {
		System.out.print("35276은 ");
		prnDisplay(numCheck("35276"));

		System.out.print("2_8a은 ");
		prnDisplay(numCheck("2_8a"));

	}// end main( )
		// a5276
                                        // 61234
	public static boolean numCheck(String data) { 
		// data값이 숫자면 true 아니면 false을 반환하는 로직 구현		
		for(int i=0;i<data.length();i++) {
			if(!(data.charAt(i)>='0' && data.charAt(i)<='9')) {
				return false;
			}
		}
		return true;
		
		
	}// end numCheck()

	public static void prnDisplay(boolean chk) {
		// chk값이 true이면 "숫자입니다."
		// chk값이 false이면 "문자입니다." 로 출력하는 로직구현
		if(chk) {
			System.out.println("숫자입니다.");
		}else {
			System.out.println("문자입니다.");
		}
		
	}// end prnDisplay()
}// end class

출력결과

 

Java123_String.java

public class Java123_String {

	public static void main(String[] args) {
		String p1 = "홍길동,561203-1597650";
		String p2 = "응삼이,030628-4056892";
		String p3 = "갑동이,900824-8052582";
		display(p1);
		display(p2);
		display(p3);
	}// end main( )

	public static void display(String str) {
		// 여기를 구현하세요.
		String arr[] = str.split(",");
		if (arr[1].charAt(7) == '1' || arr[1].charAt(7) == '3') {
			System.out.println(arr[0]+"님은 남성입니다.");
		} else if (arr[1].charAt(7) == '2' || arr[1].charAt(7) == '4') {
			System.out.println(arr[0]+"님은 여성입니다.");
		} else {
			System.out.println("잘못입력하셨습니다.");
		}

	}// end display()

}// end class

 

반응형
Comments