1. 程式人生 > >字符串反轉2單詞內部不進行轉換

字符串反轉2單詞內部不進行轉換

else while ring void clas art else if ati 字符串

//兩次反轉,第一次反轉所有的字符都進行反轉,第二次在進行單詞內部反轉從而達到要求


public class 字符串反轉單詞不反轉
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String str = in.nextLine();
System.out.println(reverseSentence(str.toCharArray()));
}

// 反轉的方法
private static void reverse(char[] data, int start, int end)
{
if (data == null || data.length < 1 || start < 0 || start > end
|| end > data.length)
{
return;
}
while (start < end)
{
char temp = data[start];
data[start] = data[end];
data[end] = temp;
start++;
end--;
}
}

// 反轉整個句子
private static char[] reverseSentence(char[] data)
{
if (data == null || data.length <= 1)
{
return data;
}
// 第一次反轉
reverse(data, 0, data.length - 1);
System.out.println(data);
int start = 0, end = 0;
while (start < data.length)
{
if (data[start] == ‘ ‘)
{
start++;
end++;
}
else if (end == data.length || data[end] == ‘ ‘)
{
reverse(data, start, end - 1);
end++;
start = end;
}
else
{
end++;
}
}
return data;
}
}

字符串反轉2單詞內部不進行轉換