日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java字母反过来_java之字母反转~~ - Plight - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

發布時間:2024/10/14 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java字母反过来_java之字母反转~~ - Plight - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字符串的反轉輸出

這也是面試題中常考的一道。我們就以一個包含了全部26個英文字母,同時又具有完整含義的最短句子作為例子來完成解答。先來看一下這個句子:

引用

A quick brown fox jumps over the lazy dog.(一只輕巧的棕色狐貍從那條懶狗身上跳了過去。)

最常用的方式就是反向取出每個位置的字符,然后依次將它們輸出到控制臺:

public class StringReverse {

public static void main(String[] args) {

// 原始字符串

String s = "A quick brown fox jumps over the lazy dog.";

System.out.println("原始的字符串:" + s);

System.out.print("反轉后字符串:");

for (int i = s.length(); i > 0; i--) {

System.out.print(s.charAt(i - 1));

}

// 也可以轉換成數組后再反轉,不過有點多此一舉

char[] data = s.toCharArray();

System.out.println();

System.out.print("反轉后字符串:");

for (int i = data.length; i > 0; i--) {

System.out.print(data[i - 1]);

}

}

}

public class StringReverse {

public static void main(String[] args) {

// 原始字符串

String s = "A quick brown fox jumps over the lazy dog.";

System.out.println("原始的字符串:" + s);

System.out.print("反轉后字符串:");

for (int i = s.length(); i > 0; i--) {

System.out.print(s.charAt(i - 1));

// 也可以轉換成數組后再反轉,不過有點多此一舉

char[] data = s.toCharArray();

System.out.println();

System.out.print("反轉后字符串:");

for (int i = data.length; i > 0; i--) {

System.out.print(data[i - 1]);

}

}

}

運行結果:

1、原始的字符串:A quick brown fox jumps over the lazy dog.

2、反轉后字符串:.god yzal eht revo spmuj xof nworb kciuq A

3、反轉后字符串:.god yzal eht revo spmuj xof nworb kciuq A

以上兩種方式雖然常用,但卻不是最簡單的方式,更簡單的是使用現有的方法:

Java代碼

public class StringReverse {

public static void main(String[] args) {

// 原始字符串

String s = "A quick brown fox jumps over the lazy dog.";

System.out.println("原始的字符串:" + s);

System.out.print("反轉后字符串:");

StringBuffer buff = new StringBuffer(s);

// java.lang.StringBuffer類的reverse()方法可以將字符串反轉

System.out.println(buff.reverse().toString());

}

}

運行結果:

1、原始的字符串:A quick brown fox jumps over the lazy dog.

2、反轉后字符串:.god yzal eht revo spmuj xof nworb kciuq A

編輯特別推薦:

a

原題:

以單詞為最小單位翻轉字符串

Write the function String reverseStringWordByWord(String input) that reverses

a string word by word. For instance,

reverseStringWordByWord("The house is blue") --> "blue is house The"

reverseStringWordByWord("Zed is dead") --> "dead is Zed"

reverseStringWordByWord("All-in-one") --> "All-in-one"

面試系列4種的實現,比較費空間,因為多申請了一段空間來保存結果。

在看了其他高手的實現后,發現可以不用申請空間,并且循環的次數更少,也可以實現相同的效果。

大體思路是:

原字符串: The house is blue

先翻轉整個字符串-> eulb si esuoh ehT

再翻轉單個單詞。

代碼:

/********************************************************************

created: 2006/06/16

filename: C:\Documents and Settings\Administrator\桌面\flwo\reverse2.c

file path: C:\Documents and Settings\Administrator\桌面\flwo

file base: reverse

file ext: c

author: A.TNG

version: 0.0.1

purpose: 以單詞為最小單位翻轉字符串-2 優化版

Write the function String reverseStringWordByWord(String input)

that reverses a string word by word. For instance,

reverseStringWordByWord("The house is blue") --> "blue is house The"

reverseStringWordByWord("Zed is dead") --> "dead is Zed"

reverseStringWordByWord("All-in-one") --> "All-in-one"

參考其他高手的思路:

先翻轉整個字符串-> eulb si esuoh ehT

再翻轉單個單詞。

*********************************************************************/

#include

#include

#include

#define REVERSE_WORD(p1, p2) while (p1 <= p2) { char ch; ch = *p1; *p1 = *p2; *p2 = ch; p1++; p2--; }

/*

* name: reverse_src_word_by_word

* params:

* des [out] 輸出字符串, des 指向實現申請的空間

* src [in] 輸入字符串,需要處理的字符串

* return:

* 處理完成后的 des 指針

* notes:

* 以單詞為最下單位翻轉字符串

* 優化: 先翻轉整個字符串,再翻轉單個單詞

*

* author: A.TNG 2006/06/16 10:37

*/

char * reverse_str_word_by_word2(char *src)

{

char *p1, *p2;

int n_src_len;

if (NULL == src)

return NULL;

/* 先把整個字符串翻轉一次 */

n_src_len = strlen(src);

p1 = src; p2 = src + n_src_len - 1;

REVERSE_WORD(p1, p2);

#if 0

while (p1 <= p2)

{

/* 交換頭字符和尾字符 */

char ch;

ch = *p1; *p1 = *p2; *p2 = ch;

p1++; p2--;

}

#endif

/* 再翻轉單個單詞 */

p1 = src; p2 = p1;

while ('\0' != *p2)

{

if (' ' == *p2)

{

char *p;

p = p2 - 1;

REVERSE_WORD(p1, p);

#if 0

while (p1 <= p)

{

char ch;

ch = *p1; *p1 = *p; *p = ch;

p1++; p--;

}

#endif

p2++;

p1 = p2;

}

else

{

p2++;

}

}

/* 翻轉最后一個單詞 */

p2--;

REVERSE_WORD(p1, p2);

#if 0

while (p1 <= p2)

{

char ch;

ch = *p1; *p1 = *p2; *p2 = ch;

p1++; p2--;

}

#endif

return src;

}

/*

* name: main

* params:

* none

* return:

* none

* notes:

* none

*

* author: A.TNG 2006/06/16 10:37

總結

以上是生活随笔為你收集整理的java字母反过来_java之字母反转~~ - Plight - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。