상수 공간을 사용하여 문자열의 단어를 바꿔 넣기를 원합니다. catch는 단어가 연속적인 공백을 포함 할 수 없다는 것입니다. 단어 사이의 모든 연속 공백을 하나의 공백으로 줄이고 공백 및 공백을 무시하고 싶습니다. 나는 단어의 반전을 구현할 수 있었지만 단어와 앞뒤 공백 사이의 연속 공백을 제거하는 것을 고심하고있다. 누군가 나를 도울 수 있습니까?char []/문장의 자리 바꾸기 단어
public char[] reverseWords(char[] s) {
if (s == null)
return null;
int right = 0;
s = reverseString(s, 0, s.length - 1);// get the reversed sentence
//System.out.println(s);
for (int left = 0; left < s.length; left++) {
if (s[left] != ' ') {// for first word
for (right = left; right < s.length && s[right] != ' '; right++)
; // get end of word
s = reverseString(s, left, right - 1);
left =(right - 1);// move left index to end of
// word
// s[left++] = ' ';
}
}
return s;
}
public char[] reverseString(char[] strChars, int start, int end) {
if (strChars == null)
return null;
while (start < end) {
char temp = strChars[start];
strChars[start] = strChars[end];
strChars[end] = temp;
start++;
end--;
}
return strChars;
}
예, 전체 문장의 문자 배열로 어떻게 할 수 있습니까? – user2441441
오른쪽. 나는 당신의 질문이 "문자열"이라고 생각했습니다. 내 잘못이야. –
'.replace ("", "")'할 수 있습니까? – Aarowaim