Object 클래스는 java.lang 패키지에 들어있고 모든 클래스의 조상이다.
Object 클래스의 toString() 메서드는 객체의 문자 정보 return
Object obj = new Object();
System.out.println(obj.toString());
[실행결과]
java.lang.Object1@defxed
int index = "The cat is on the table".indexOf("table");
if(index == -1){System.out.println("talbe은 없습니다");}
else{System.out.println("tlable의 위치: " + index);} // 18
String str1 = "I love java";
System.out.println(str1.length()); // 11
System.out.println(str1.trim().length()); // 9
String[] tokens = "100,200,300".split(","); // ["100", "200", "300"]
//static String valueOf(int i);
String str1 = String.valueOf(23); // "23"
System.out.println(str1 instanceof String); // true
String str1 = "100";
int int2 = Integer.parseInt(str1);
Scanner를 이용하여 한 라인을 읽고, 공백으로 분리된 어절이 몇 개 들어 있는지 "그만"을 입력할 때까지 반복하는 프로그램을 작성하라.
I love Java.
어절 개수는 3
자바는 객체 지향 언어로서 매우 좋은 언어이다.
어절 개수는 7
그만
종료합니다...
[Hint] Scanner.nextLine()을 이용하면 빈칸을 포함하여 한 번에 한 줄을 읽을 수 있다.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
while(true) {
System.out.print(">>");
String str = sc.nextLine();
if(str.equals("그만")) {
System.out.println("종료합니다...");
break;
}
String[] words = str.split(" ");
System.out.println("어절의 갯수는 " + words.length);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("프로그램을 새롭게 시작합니다.");
continue;
}
}
class Stack {
private int top;
private int stackSize;
private char stackArr[];
// 스택이 비어있는 상태인지 확인
// 스택 포인터가 -1인 경우 데이터가 없는 상태이므로 true 아닌 경우 false를 return
public boolean isEmpty() {
return (top == -1);
}
// 스택이 가득찬 상태인지 확인
// 스택 포인터가 스택의 마지막 인덱스와 동일한 경우 true 아닌 경우 false를 return
public boolean isFull() {
return (top == this.stackSize - 1);
}
// 스택에 데이터를 추가
public void push(char item) {
if (isFull()) {
System.out.println("Stack is full!");
} else {
stackArr[++top] = item; // 다음 스택 포인터가 가리키는 인덱스에 데이터 추가
System.out.println("Inserted Item : " + item);
}
}
// 스택의 최상위(마지막) 데이터 추출 후 삭제
public char pop() {
if (isEmpty()) {
System.out.println("Deleting fail! Stack is empty!");
return 0;
} else {
System.out.println("Deleted Item : " + stackArr[top]);
return stackArr[top--];
}
}
// 스택의 최상위(마지막) 데이터 추출
public char peek() {
if (isEmpty()) {
System.out.println("Peeking fail! Stack is empty!");
return 0;
} else {
System.out.println("Peeked Item : " + stackArr[top]);
return stackArr[top];
}
}
// 스택 초기화
public void clear() {
if (isEmpty()) {
System.out.println("Stack is already empty!");
} else {
top = -1; // 스택 포인터 초기화
stackArr = new char[this.stackSize]; // 새로운 스택 배열 생성
System.out.println("Stack is clear!");
}
}
// 스택을 생성하는 생성자
public Stack(int stackSize) {
top = -1; // 스택 포인터 초기화
this.stackSize = stackSize; // 스택 사이즈 설정
stackArr = new char[this.stackSize]; // 스택 배열 생성
}
// 스택에 저장된 모든 데이터를 출력
public void printStack() {
if (isEmpty()) {
System.out.println("Stack is empty!");
} else {
System.out.print("Stack elements : ");
for (int i = 0; i <= top; i++) {
System.out.print(stackArr[i] + " ");
}
System.out.println();
}
}
}
public class StackTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("스택 사이즈를 입력하시오.");
int stackSize = sc.nextInt() ;
Stack stack = new Stack(stackSize);
stack.push('A');
stack.printStack();
stack.push('B');
stack.printStack();
stack.push('C');
stack.printStack();
stack.pop();
stack.printStack();
stack.pop();
stack.printStack();
stack.peek();
stack.printStack();
stack.clear();
stack.printStack();
}
}