2012-07-03 3 views
0

Emacs, Notepad ++ 또는 Eclipse를 사용하고 있습니다. 작은 조각으로 문자열을 자르고 구분 기호를 사용하여 문자열을 연결하는 방법이 있습니까? 예를 들어특정 연산자가있는 concat 문자열

: 입력 :

"I like sushi and maki" 

출력 : 당신은 단지 문자열 내부에 커서를 놓고 Enter 키를 누르십시오해야합니다 (적어도 자바 맥락에서) 이클립스에서

"I like" + 
"sushi and" + 
"maki" 
+4

이것은 매우 모호한 질문입니다. – phils

+0

부 엉 (whit) : 각각의 길이는 얼마입니까? 얼마나 견고해야합니까? (문자열 내의 문자열?) –

답변

0

. Netbeans에서도 작동합니다.

메모장에서
+0

내 문자열은 거대합니다. (테스트 용입니다) – JohnJohnGa

0

++ 당신은 정규식 사용할 수 있습니다 ([\w]+)\s*([\w]*)을 다음 "$1 $2" +로 대체하지만 당신은 돌아가서 하나의 그룹 경기가 마지막 교체에서 외부 + 표시를 제거해야합니다.

+0

Emacs 용 솔루션은 replace-regexp 또는 query-replace-regexp를 C-M- %에 바인딩하여 사용합니다. 대체 문자열에 개행 문자를 삽입하려면 C-q C-j를 사용해야합니다. – JSON

0

다음은 문제를 해결하는 방법입니다. 비록 내가 옳은 문제를 해결하고 있는지 확실하지 않다. :)

(defun split-string-words (min max) 
    (interactive "r") 
    (let ((counted 0) (before-indent min) 
     (wordcount (read-number "How many words in a line? " 7)) 
     (delimiter 
     (read-string "Delimit with (default: \" + \") " 
         nil nil "\" + \""))) 
    (save-excursion 
     (goto-char min) 
     (while (< min max) 
     (incf counted) 
     (when (= counted wordcount) 
      (insert delimiter) 
      (backward-char) 
      (incf max (length delimiter)) 
      (setq before-indent (point) 
       counted 0) 
      (newline-and-indent) 
      (incf max (- (point) before-indent))) 
     (forward-word) 
     (setq min (point)))))) 

사용법은 분명해야한다. 편집 모드에서 <mode>-insert-and-indent 기능을 확인한 후 newline-and-indent 대신 사용하고 싶습니다.