16.JAVA 예제 정리 [문자열 배열]
public class 문자열_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1="Hello Java";
String s2="Hello Java";
String s3=new String("Hello Java");
// == 메모리 주소 비교. equals는 저장되어 있는 문자열 비교
// equalsIgnoreCase는 대소문자 구분 없음
// 나머지 String모든 메소드는 대소문자를 구분
if(s1==s2) {
System.out.println("s1==s2");
}else {
System.out.println("s1!=s2");
}
if(s1==s3) {
System.out.println("s1==s3");
}else {
System.out.println("s1!=s3");
}
}
}
/*
* 변수=> 데이터를 모아서 관리 => 배열 / 클래스
* 연산자 / 제어문
* => 연산자 응용 => 제어문
* => 제어문 응용 => 배열
* => 배열 응용 => 메소드
* => 메소드 => 클래스
* => 클래스 응용 => 라이브러리
* ----------------------------------
* => 처리하는 기능이 많은 경우 => 소스코딩이 많음
* ----------- 조립
*
* 1) 문자열 => 웹,윈도우 프로그램은 대부분 문자열로 만들어 진다.
* 가장 많이 사용되는 데이터
* 문자 여러개를 모아서 저장
* ----------char[] => String
* 2) String : 일반 데이터형 / 클래스형
* 사용하는 방법
* =일반 데이터형 (가장 많이 사용)
* String 변수명 =" ";
* =클래스형
* String 변수명=new String("저장 데이터","UTF-8");
* -----------------------한글변환 (브라우저 => char=> 1byte)
* 3) String의 디폴트는 null (주소가 없는 상태)
* => 모든 클래스의 디폴트 => NullPointerExeption
* 4) String 기능 (메소드)
* ** String,Math,Scanner,System는 final class
* -----------
* | 변경을 할 수 없다.
* | 있는 그대로 사용.
* | 표준화
*
* ** java.lang.* => import를 생략할 수 있다.
* = 변환
* toUpperCase(): 대문자 변환
* => 메소드
* 결과값 : String
* 매개변수 : X
* 메소드명 : toUpperCase
* 기능
* => String toUpperCase() => 원형
* => String name=toUpperCase()
* toLowerCase(): 소문자 변환
* String toLowerCase()
* **valueOf() : 모든 데이터형을 문자열로 변환
* String valueOf(int)
* String valueOf(char)
* String valueOf(double)
* -------오버로딩
* **replace() : 문자,문자열 변환
* String replace(char c1,char c2)
* c1=> c2
*
* replaceAll() : 패턴을 이용한 문자열 변환
* --------- regex (정규식)
* = 문자열 분해
* **substring(): 문자를 자르는 경우
* String substring(int begin)
* String substring(int begin,int end)
* **split() : 단어별로 나눠서 배열에 저장
* String[] split(Stinrg regex)
* = 비교
* **equals() : 같은 경우에 true ( == )
* boolean equals(String s)
* startsWith() : 시작하는 문자열이 같은 경우
* boolean startsWith(String s)
* endsWith() : 끝나는 문자열이 같은 경우
* boolean endsWith(String s)
* **contains() : 포함된 문자열
* boolean contains(String s)
*
* = 위치 찾기
* **indexOf() : 처음부터 찾기 : 문자/문자열
* int indexOf(char c)
* int indexOf(String s) indexOf("Java")
* lastIndexOf() : 끝에서부터 찾기 *
* int indexOf(char c)
* int indexOf(String s) indexOf("Java")
* = 문자열 결합
* concat() : 문자열 결합
* String concat(String s)
* + : 문자열 결합
*
* = 기타
* **trim() : 좌우의 공백 제거
* String trim()
* charAt() : 문자의 위치 => 문자 읽기
* char charAt(int index)
* toCharArray() : String을 char[]로 변경
* char[] toCharArray()
=> 문자열 배열
형식)
String[] arr={"","","","","") => 명시적 초기화
String[] arr=split()
--------------------------------------------
*/
import java.util.Scanner;
public class 문자열배열_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 배열 선언 => 선언과 동시에 초기화
String[] names = { "홍길동", "심청이", "박문수", "이순신", "강감찬" };
Scanner scan = new Scanner(System.in);
Systehttp://m.out.print("이름 입력:");
String name = scan.next();
// 출력
for (String n : names) {
// if(n.equals(name)){// equals 같은 경우 / 대소문자 구분 /
if (n.contains(name))
// equalsIgnoreCase : 대소문자 구분없이
Systehttp://m.out.print(n + " ");
}
}
}
import cohttp://m.sist.data.*; //사용자 정의
import java.util.Scanner;
public class 문자열배열_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 데이터 읽기
String[] fdata=ArrayData.korEng;
// 데이터 확인 / 출력
Scanner scan=new Scanner(System.in);
Systehttp://m.out.print("과일명을 입력 : ");
String f=scan.next();
for(String ff:fdata) {
if(ff.contains(f)) {
String change=ff.substring(ff.indexOf(":")+1);
System.out.println(ff+"는(은) 영어로 "+change);
}
}
}
}
import java.util.*;
import cohttp://m.sist.data.*;
public class 문자열배열_3 {
/*
class Music{
String title,singer,album,state;
int modify
}
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] title=ArrayData.title;
String[] singer=ArrayData.singer;
String[] album=ArrayData.album;
String[] state=ArrayData.state;
int[] modify=ArrayData.modify;
//String[][] music=new String[50][5]
//Music[] music=new Music[50];
System.out.println("Music Top50");
for(int i=0; i<title.length; i++) {
String s= state[i];
String m="";
if(s.equals("유지")) {
m="-";
}else if (s.equals("상승"))
{
m="▲ "+modify[i];
}else if (s.equals("하강"))
{
m="▼ "+modify[i];
}
System.out.println((i+1)+"."+ m+" "+title[i]+" "+singer[i]+ " "+album[i]);
}
System.out.println("============================================");
// Scanner scan=new Scanner(System.in);
// System.out.println("카테고리 선택 : 곡명(1),가수명(2):");
// int menu=scan.nextInt();
// int count=0;
// if(menu==1) {//제목
//
// System.out.println("제목 입력: ");
// String name=scan.next();
// for(int i=0; i<title.length; i++) {
// if(title[i].contains(name)) {
// System.out.println("노래명:"+title[i]);
// System.out.println("가수명:"+singer[i]);
// System.out.println("앨범:"+album[i]);
// System.out.println("등폭:"+(state[i].equals("유지")?"유지":state[i]+" "+modify[i]));
// System.out.println("================================");
// count++;
// }
// }
// System.out.println("총"+count+"건 검색");
//
// }else if(menu==2) { //가수명
// System.out.println("가수명 입력: ");
// String name=scan.next();
// for(int i=0; i<singer.length; i++) {
// if(singer[i].contains(name)) {
// System.out.println("노래명:"+title[i]);
// System.out.println("가수명:"+singer[i]);
// System.out.println("앨범:"+album[i]);
// System.out.println("등폭:"+(state[i].equals("유지")?"유지":state[i]+" "+modify[i]));
// System.out.println("================================");
// count++;
// }
// }
// System.out.println("총"+count+"건 검색");
// }
//등폭(상승,하강)이 가장 많은 노래명, 가수명을 출력
int high=0;
int count=0; // 가변형
for(int i=0; i<50; i++) {
if(modify[i]>high) {
high=modify[i];
}
}
for(int i=0; i<50; i++) {
if(modify[i]==high) {
count++;
}
}
System.out.println("high :"+high);
System.out.println("배열 갯수:"+count);
int[] arr=new int[count];
int j=0;
for(int i=0; i<50; i++) {
if(high==modify[i]) {
arr[j]=i;
j++;
}
}
for(int i:arr) {
System.out.println(title[i]+""+singer[i]);
}
}
}
import java.util.*;
import cohttp://m.sist.data.*;
public class 문자열배열_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String movie=ArrayData.arrayData("movie.txt");
System.out.println(movie);
String seoul_location=ArrayData.arrayData("seoul_location.txt");
System.out.println(seoul_location);
String seoul_nature=ArrayData.arrayData("seoul_nature.txt");
System.out.println(seoul_nature);
}
}
import java.lang.reflect.Array;
public class 문자열배열_5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String movie="1|쇼생크 탈출|드라마|https://movie-phinf.pstatic.net/20160119_278/14531650465287bcuk_JPEG/movie_image.jpg?type=m77_110_2|팀 로빈스(앤디 듀프레인), 모건 프리먼(엘리스 보이드 레드 레딩)|2016 .02.24 재개봉, 1995 .01.28 개봉|15세 관람가|프랭크 다라본트";
String[] info=movie.split("\\|");
// => 오라클
// StringTokenizer
// split는 정규식을 이용 => 사용하는 기호 => |,?,.,+,*
// 실제 데이터를 가져올때는
System.out.println("순위:"+info[0]);
System.out.println("영화명:"+info[1]);
System.out.println("장르:"+info[2]);
//info[3] => poster
System.out.println("출연:"+info[4]);
System.out.println("개봉일:"+info[5]);
System.out.println("등급:"+info[6]);
System.out.println("감독:"+info[7]);
}
}
// 1|양화진외국인선교사묘원|양화진외국인선교사묘원은 서울 마포구 합정동에 위치한 외국인 선교사들의 공동묘지이다.|04084 서울 마포구 양화진길 46 (합정동, 양화진홍보관)
// 1|
//도봉산|
//하늘을 깎아세운 만길 봉우리도봉(道峰)산은 이름 그대로 봉우리가 길인 산|
//132-010 서울특별시 도봉구 도봉동 경기 의정부시, 양주시 장흥면 일대
import cohttp://m.sist.data.*;
public class 문자열배열_7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String seoul = ArrayData.arrayData("seoul_location.txt");
String[] seoul_data = seoul.split("\n");
for (String s : seoul_data) {
String[] data = s.split("\\|");
if (data[3].contains("마포")) {
System.out.println("번호:" + data[0]);
System.out.println("명소명:" + data[1]);
System.out.println("주소:" + data[3]);
System.out.println("소개:" + data[2]);
System.out.println("=================================================================");
}
}
}
}