java split을 사용하여 구분자로 구별할 수 있는데요,

 

split 함수가 인자가 1개인 경우도 있고, 2개인 경우도 있습니다.

 

이때 2개의 인자를 사용해보겠습니다.

 

예를 들어 문장을 입력받았는데, 제일 마지막 두 단어에 [ ] 표시를 한다고 하면,

만약 한문장이 한단어로 이루어진 경우도 있겠죠? 그걸 경우는 그 한 단어에 [ ] 표시를 합니다.

ex) 지금 뭐하고 있어? ==> 지금 [뭐하고] [있어?]

    지금  뭐하고  있어? ==> 지금 [뭐하고] [있어?]  (중간에 space가 두개인 경우)

     뭐하니?  ==> [뭐하니?]

     나는 오늘도 회사에 가야 한다. ==> 나는 오늘도 회사에 [가야] [한다.]

 

	private static String getLearnSentence(String input) {
		String result = "";
		if(input.trim().length() == 0) {
			return result;
		}
		String[] myArr = input.trim().split(" ",-1);
		int arrLength = myArr.length;
        for(int i=0 ; i<arrLength ; i++)
        {
        	System.out.println(myArr[i]);
        	if(!myArr[i].isEmpty()) {
	        	if(i >= arrLength -2 ) {
	        			result = result + " ["+myArr[i]+"]"; 
	        	}else {
	        		result = result + " "+myArr[i]; 
	        	}
    		}else {
    			arrLength--;
    		}
        }
		
		return result;
	}

 

input.split(" ",-1) ==> 구분자는 " "이고,  구분자 사이에 값이 없는 경우는 제외하라는 뜻입니다.

만약 입력값에 공백이 하나가 아니라 두개가 들어오더라도 상관이 없겠죠?

위 로직은 문장 중간에 space가 두개가 아니라 세개 또는 그 이상이 여러개 들어올경우는 문제가 생깁니다.

그러면 아래 로직 참고해서, space만 있는 String[] 객체는 제외시키는 로직을 먼저 동작시키면 됩니다.

 

 

이번에는 문장을 입력받았는데, 제일 마지막 두 단어를 합쳐서 [ ] 표시를 한다고 하면,

만약 한문장이 한단어로 이루어진 경우는 그 한 단어에 [ ] 표시를 합니다.

ex) 지금 뭐하고 있어? ==> 지금 [뭐하고 있어?]

    지금  뭐하고  있어? ==> 지금 [뭐하고 있어?]  (중간에 space가 두개인 경우)

     뭐하니?  ==> [뭐하니?]

     나는 오늘도 회사에 가야 한다. ==> 나는 오늘도 회사에 [가야 한다.]

	private static String getLearnSentence(String input) {
		String result = "";
		if(input.trim().length() == 0) {
			return result;
		}
		String[] myArr = input.trim().split(" ",-1);
		ArrayList<String> list = new ArrayList<String>(); 
		for(String data : myArr) {
			if(!data.trim().isEmpty()) list.add(data); // 실제 데이터가 있는 경우만 추가
		}
		
        for(int i=0 ; i<list.size() ; i++)
        {
        	System.out.println(myArr[i]);
	        	if(i >= list.size() -1 ) {
	        			if(list.size() == 1) {
	        				result = "["+list.get(i)+"]"; 
	        			}else {
	        				result = result + " "+list.get(i)+"]"; 
	        			}
	        	}else if(i >= list.size() -2 ) {
    				result = result + " ["+list.get(i); 
	        	}else {
	        		result = result + " "+list.get(i); 
	        	}
        }
		return result;
	}

+ Recent posts