랩띠리즈
752
2019-06-25 10:12:22
6
400

문자열을 원하는대로 나누고싶은데 어렵네요.. 어떻게하면될까요


string str = "001#취미를고르세요#1번,001#취미를고르세요#2번,001#취미를고르세요#3번";

이렇게 붙이는 문자열을

앞에 2번째 까진 똑같으니


string strval = "001#취미를고르세요#1번,2번,3번";

이런식으로 끝에있는 1번,2번,3번만 이어붙이고싶어요..

0
  • 답변 6

  • 자라선
    1k
    2019-06-25 10:15:40
    문자열을 분리하여 LIST에 넣고 인덱스별로 삽입하는게 편하지 않을려나요?
  • Frudy
    7k
    2019-06-25 10:27:30

    더 편한방법은 다른분들이 설명해주실거같구요~

    저는 질문에 맞춰서 답변을 드려볼게요.


    당장 생각나는 방법은 String의 split(String regex)이에요.


    결과화면 : 



    package test;
    
    public class Test 
    {
    	public static void main(String[] args) 
    	{
    		String str = "001#취미를고르세요#1번,001#취미를고르세요#2번,001#취미를고르세요#3번";
    		String result = result(str);
    		System.out.println(result);
    	}
    	
    	public static String result(String str)
    	{
    		String[] strs = str.split("001#취미를고르세요#");
    		StringBuffer buf = new StringBuffer("");
    		
    		buf.append("001#취미를고르세요#");
    		
    		for(String add: strs)
    		{
    			if(add.isEmpty() == false)
    				buf.append(add);
    		}
    		
    		return buf.toString();
    	}
    }
    


  • Frudy
    7k
    2019-06-25 10:29:10

    문자열 나누는팁은, String클래스의 공식문서를 살펴보고,

    각각의 메소드는 뭐가있는지를 알아보는게 중요해요.


    문자열을 자르는데 필요한 메소드는..

    indexOf()

    substring()

    lastIndexOf()

    split()

    이정도 기억나네요.


    직접 계속 잘라보다보면 익숙해질거에요!

  • Balmy
    862
    2019-06-25 10:37:55

    2번째분이 해주신것처럼 따로 빼주시는것도 좋지만

    만약 그곳에서만 쓰신다 하면

    String str = "001#취미를고르세요#1번,001#취미를고르세요#2번,001#취미를고르세요#3번";

    String[] strs = str.split("001#취미를고르세요#");

    String strval = "001#취미를고르세요#";

    for(int i=0;strs.length>i;i++){

    strval= strval+strs[i];

    }

    System.out.println(strval);


    이것만 쓰시면 되겠네요

  • 랩띠리즈
    752
    2019-06-25 11:05:21

    감사합니다 해결했습니다!!

    split으로 ,구분으로 먼저 잘라서 첫번째 str[0] += "," + str[1][str[1].Length - 1] + "," + str[2][str[2].Length - 1];

    이런식으로 넣었습니다!

  • moonti
    3k
    2019-06-25 11:15:37
    정규표현식을 썼다면 가독성이 좀 더 좋았을 것 같네요.
    근데 위처럼 길지 않다면 위 코드도 괜찮습니다.ㅎ
  • 로그인을 하시면 답변을 등록할 수 있습니다.