재훈재훈
문자열 다루기 예제 1 본문
소스 출처 - 부경대 권오흠 교수님, <JAVA로 배우는 자료구조> 강의
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Lesson {
static int n = 0;
static String [] names = new String [1000];
static int [] numbers = new int [1000];
/* int [] numbers;
numbers = new int [1000];
배열에서의 선언과 생성은 별개의 일!
*/
public static void main(String[] args) {
Scanner sc;
try {
sc = new Scanner( new File("input.txt") );
//system.in - 키보드 입력 받을 때
//new File("파일명") - 파일 입출력
while(sc.hasNext()){ //hasNext() - 다음에 입력받을 값이 있는지 여부 체크
names[n] = sc.next();
numbers[n] = sc.nextInt();
n++;
}
sc.close();
} catch (FileNotFoundException e) {
System.out.println("No File");
System.exit(1);
}
bubbleSort();
for(int i=0; i<n; i++)
{
System.out.println( names[i] + ", " + numbers[i] );
}
}
static public void bubbleSort() // call by value
{
for(int i = n-1; i>0; i--){
for(int j = 0; j<i; j++){
if(names[j].compareTo(names[j+1]) > 0){
// 만약 str1 str2의 동일성 체크하고자 한다면? - str1.equals(str2) - t/f로 반환됨
//compareTo(anotherString) -> 사전식배열 검사하는 메소드
String tmpstr = names[j];
names[j] = names[j+1];
names[j+1] = tmpstr;
int tmp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = tmp;
}
}
}
}
}
파일 예시 - input.txt
John 01012345678
James 01087654321
Kim 01013579246
Yang 01015771577
Choi 01015661566
'Computer Engineering > JAVA' 카테고리의 다른 글
다형성과 동적 바인딩 (0) | 2018.04.07 |
---|---|
상속과 생성자 (0) | 2018.04.07 |
참조변수(클래스 및 배열)의 선언 및 생성 시 주의할 점 (0) | 2018.04.07 |
문자열 다루기 예제 3 - index maker 수정본 (0) | 2018.04.07 |
문자열 다루기 예제 2 - index maker (0) | 2018.04.07 |