카테고리 없음

16.JAVA 예제 정리 [문자열 배열]

woogy99 2024. 12. 3. 17:57

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("=================================================================");
}

}
}

}