질문)

 

특정문자 잘라서 출력하기 입니다.

substring를 사용해야 하는데 어떻게 하죠/

부탁 합니다


String arrNo = "|aaa.jpg|bbb.jpg|ccc3.jpg";  이렇다고 가정햇을 경우

제일 처음 파일명과 확장자 aaa.jpg 출력을 할려고 합니다

어떻게 해야 하는지요?

 

http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=254357522&page=1#answer3

 

 

 

재질문)

 

http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=254364347

http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=254422810

 

이런걸 원하는 거였으면 진작 수준에 맞게 만들어 줄껄.. 괜히 오버했네..

그래도 시간 들여서 만들었으니 지우긴 아깝고.. 여기라도 올려야겠다.

 

 

 

내 답변)

 

 

1. CLASS

 

import java.util.Scanner;

 

public class t13_000 {
  public static void main(String arg[]) {
    Scanner sc = new Scanner(System.in);
  

    // '|'으로만 구분한다고 가정했을 때 자르기.
    String arrNo = "|aaa.jpg|bbb.jpg|ccc3.jpg|ddd44.jpg";

    // String arrNo = "aaa.jpg|bbb.jpg|ccc3.jpg|ddd44.jpg";

     

    while(true){


      int li = arrNo.indexOf("|"); 
      int first = 0;
      int last = 0;
      int len = 0;
      int no = 0;
      int count = 0;
            
      String arr = "";

      System.out.print("1. 전체 출력, 2. 원하는 부분만 출력, 3. 종료 ");
      no = sc.nextInt();
         
      if(no == 2){
        System.out.print("출력할 순서를 입력 : ");
        len = sc.nextInt();
      }
                
      while(true){
        if(li != -1){
          if(li == 0){
            li = arrNo.indexOf("|", li + 1);
            first = last + 1;
          }else{
            if(count == 0) first = last;
            else first = last + 1;  
          }

          last = li;
        }else{
          first = last + 1;
          last = arrNo.length();
        }
        // System.out.println("li = " + li + ", first = " + first + ", last = " + last);
 
        if(no == 2){
          if(count == len){
            System.out.print("count = " + count + " : ");
            arr = arrNo.substring(first, last);
            System.out.println(arr);
            break;
          }
           
        }else if(no == 1){
          System.out.print("count = " + count + " : ");
          arr = arrNo.substring(first, last);
          System.out.println(arr);


          if(li == -1) break;
        }else{
          return;
        }

        li = arrNo.indexOf("|", li + 1);
        count++;   
      }
      System.out.println();
    } 
  }
}

 

 

2. RUN

 

1. 전체 출력, 2. 원하는 부분만 출력, 3. 종료 2
출력할 순서를 입력 : 2
count = 2 : ccc3.jpg

 

1. 전체 출력, 2. 원하는 부분만 출력, 3. 종료 1
count = 0 : aaa.jpg
count = 1 : bbb.jpg
count = 2 : ccc3.jpg
count = 3 : ddd44.jpg

 

1. 전체 출력, 2. 원하는 부분만 출력, 3. 종료 2
출력할 순서를 입력 : 0
count = 0 : aaa.jpg

 

1. 전체 출력, 2. 원하는 부분만 출력, 3. 종료 2
출력할 순서를 입력 : 3
count = 3 : ddd44.jpg

 

1. 전체 출력, 2. 원하는 부분만 출력, 3. 종료 3

 

 

 

// 너무 대충대충 만들었나.. 질문자 수준에 맞춰 배열이나 array 등을 안쓰고 만들었더니

// 완전 노가다에 소스만 너저분해졌네.. 그리고..

// hong****야.. hong****야.. 어깨위에 그것 무거워서 어떻게 달고 다니니.. ㅉㅉ

// 알려줘도 고쳐서 쓸 생각은 못하고, 마감하더니 재질문 올렸네..