String 클래스 실습
public static void main(String[] args) {
String str = "자바 커피";
int len = str.length();
for(int i=0; i<len; i++)
{
char ch = str.charAt(i);
//문자 하나 지정
System.out.println(ch);
}
}
public static void main(String[] args) {
String str1 = new String("Java");
String str2 = new String("java");
if(str1.equalsIgnoreCase(str2)) {
//대소문자 무시하고 비교, 대소문자 달라도 같은 것으로 취급
System.out.println("일치합니다.");
} else {
System.out.println("불일치합니다.");
}
}
public static void main(String[] args) {
String str1 = new String("Java Study");
String str2 = new String("Java");
if(str1.startsWith(str2)) {
//str1이 str2로 시작하면 같은 것으로 취급.
//str1의 첫 부분이 str2를 포함하면 됨
System.out.println("일치합니다.");
} else {
System.out.println("불일치합니다.");
}
}
String str = "abcdefghijk";
System.out.println(str.substring(3));
System.out.println(str.substring(3, 7));
//인덱스 인자를 하나만 주면 그 인자부터 끝까지 출력
//인덱스 인자를 두개 주면 두번째 인자 전까지 출력
System.out.println(str.toUpperCase());
//대문자로 변환
System.out.println(str.toLowerCase());
//소문자로 변환
System.out.println(str.replaceAll(str, "zzz"));
//str에 저장되어 있는 모든 문자를 zzz로 변환시킨다.
System.out.println(str);
String str1 = "aaabbbccc";
System.out.println(str1.replace("b", "B"));
//특정 문자를 변환시켜준다.
System.out.println(str1);
String str2 = " aaa bbb ccc ddd ";
String str3 = str2.trim();
//공백있는 문자열을 공백없이 출력해준다.
StringBuffer 클래스 실습
public static void main(String[] args) {
GregorianCalendar gc = new GregorianCalendar();
final char[] KOR_WEEK = { '일', '월', '화', '수', '목', '금', '토' };
for(int i =2009; i<=2019;i++)
{
gc.set(i, Calendar.FEBRUARY, 17);
char c = KOR_WEEK[gc.get(Calendar.DAY_OF_WEEK)-1];
System.out.println(i + " 년의 생일은 " +c+ " 요일 입니다.");
}
String now = gc.get(Calendar.YEAR) + "년"
+ (gc.get(Calendar.MONTH)+1) + "월 "
+ (gc.get(Calendar.DATE)) + "일"
+ (gc.get(Calendar.HOUR)) + "시"
+ (gc.get(Calendar.MINUTE)) + "분"
+ (gc.get(Calendar.SECOND));
System.out.println("현재 시각 : " + now + " 입니다.");
gc.add(Calendar.DATE, 1000);
String future = gc.get(Calendar.YEAR) + "년"
+ (gc.get(Calendar.MONTH)+1) + "월"
+ gc.get(Calendar.DATE) + "일";
System.out.println("미래 시각 : " +future+ " 입니다.");
}
과제1>문자열 "abcdefg"를 이용하여 실행결과와 같이 만들어보자.
결과> abcdEFG
AbCdEfG
gfedcba
public class String_Exam {
public static void main(String[] args) {
String str1 = "abcdefg";
String str2 = str1.substring(4 , 7);
String str3 = str1.substring(0, 4);
System.out.println(str3.concat(str2.toUpperCase()));
String str4, str5;
char str6[] = str1.toCharArray();
for(int i = 0; i < str1.length(); i++)
{
if (i%2 == 0)
{
str4 = str1.substring(i, i+1).toUpperCase();
System.out.print(str4);
}
else
{
str5 = str1.substring(i, i+1).toLowerCase();
System.out.print(str5);
}
}
System.out.println();
for(int i=(str1.length()-1);i>=0;i--)
{
System.out.print(str6[i]);
}
}
}
과제2>문자열를 이용하여 실행결과와 같이 만들어보자.
StringBuffer sb = new StringBuffer("abcdefg");
결과> AbCdEfG
GfEdCbA
GFEDCBA
public class String_Buffer {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("abcdefg");
String str1, str2,str3;
for(int i=0;i<7;i++)
{
if (i%2 == 0)
{
str1 = sb.substring(i, i+1).toUpperCase();
System.out.print(str1);
sb.append(str1);
}
else
{
str2 = sb.substring(i, i+1).toLowerCase();
System.out.print(str2);
sb.append(str2);
}
}
System.out.println();
sb.delete(0, 7);
sb.reverse();
System.out.println(sb);
str3 = sb.substring(0,7).toUpperCase();
sb.append(str3);
sb.delete(0, 7);
System.out.println(sb);
}
}
과제3>StringBuffer 클래스를 이용하여 문자 스택을 구현해보자.
class CharStack{
private StringBuffer stack;
public CharStack(){
stack = new StringBuffer();
}
public CharStack(int capacity){
stack = new StringBuffer(capacity);
}
public void push(char c){ //append
//내용
}
public int pop(){ //length -1 ->delete
//내용
}
public char[] list(){
//내용
}
public String toString(){
//내용
}
}
public class StringBufferExam{
public static void main(String[] args){
CharStack cs = new CharStack();
cs.push('A'); cs.push('B'); cs.push('C'); cs.push('D');
System.out.println((char)cs.pop());
System.out.println((char)cs.pop());
System.out.println((char)cs.pop());
System.out.println((char)cs.pop());
}
}
결과> D
C
B
A
class CharStack{
private StringBuffer stack;
public CharStack(){
stack = new StringBuffer();
}
public CharStack(int capacity){
stack = new StringBuffer(capacity);
}
public void push(char c){
stack = stack.append(c);
}
public char pop() {
//삭제 전 마지막 데이터를 리턴한다.
char ch = stack.charAt(stack.length()-1);
stack = stack.deleteCharAt(stack.length()-1);
return ch;
}
public char[] list(){ //현재 담겨져 stack을 보여준다.
char ch[] = stack.substring(0).toCharArray();
return ch;
}
public String toString(){ //출력 부분
return this.stack.toString();
}
}
public class StringBufferExam{
public static void main(String[] args) {
CharStack cs = new CharStack();
cs.push('A'); cs.push('B'); cs.push('C'); cs.push('D');
cs.list();
System.out.println(cs.list());
System.out.println((char)cs.pop());
System.out.println((char)cs.pop());
System.out.println((char)cs.pop());
System.out.println((char)cs.pop());
}
}
과제4> 특정 월의 달력 출력
public class Calendar_Test {
public static void main(String[] args) {
GregorianCalendar gc = new GregorianCalendar();
//특정 년, 월 입력
int year = 2009;
int month = 7;
//시작하는 날 앞에 공백을 주기 위해서
gc.set(year, month-1, 1);
int w = gc.get(Calendar.DAY_OF_WEEK);
System.out.println(" <"+year+"년 "+month+"월>");
System.out.println(" 일 월 화 수 목 금 토");
for(int i=1;i<w;i++)
{
System.out.print(" ");
}
//지정하는 달의 날들의 최대치까지
for(int i=1;i<=gc.getActualMaximum(Calendar.DATE);i++) {
//공백설정
if (i < 10)
System.out.print(" "+i+" ");
else
System.out.print(" "+i+"");
//7일씩 구문 나누기
if ((i-8+w)%7==0)
System.out.println();
}
System.out.println("\n");
}
}
'Study > Java' 카테고리의 다른 글
[java] 클래스와 자료구조 실습 (0) | 2019.05.15 |
---|---|
[java] 클래스와 자료구조 (0) | 2019.05.15 |
[java] 참조값, instead of, 클래스 (0) | 2019.05.15 |
[java] 예외처리, 정적필드 (0) | 2019.05.15 |
[java] 상속, 인터페이스 실습 (0) | 2019.05.15 |