2010-03-11 83 views
-1

我想用「特殊方法」(如Java中的util包方法)輸出字符串「my name is xxx」爲「xxx is name my」。 謝謝字符串劃分

+6

你想使用Java不使用Java API的API?這是作業,對嗎? – skaffman 2010-03-11 08:52:12

+2

「絃樂分區」聽起來很奇怪。 – Zaki 2010-03-11 09:01:48

+0

對於它的價值,OP,這個任務被稱爲字符串標記。 – polygenelubricants 2010-03-11 09:08:42

回答

1

僅供參考,String類居住在java.lang包中。

+0

是的,但還有其他字符串操作類,它們存在於java.util中,如StringTokenizer。 – Powerlord 2010-03-18 18:05:25

5
String text = "my name is xxx"; 
    String reversed = ""; 
    for (String word : text.split(" ")) { 
    reversed = word + " " + reversed; 
    } 
    reversed = reversed.trim(); 

如果完全沒有方法調用是允許的,那麼這是一個有點混亂。

String text = "my name is xxx"; 
    char[] letters = text.toCharArray(); 
    char[] srettel = new char[letters.length]; 
    for (int last = letters.length, i = last - 1, j = 0; i >= -1; i--) { 
    if (i == -1 || letters[i] == ' ') { 
     for (int k = i + 1; k < last;) { 
      srettel[j++] = letters[k++]; 
     } 
     if (i != -1) srettel[j++] = ' '; 
     last = i; 
    } 
    } 
    String reversed = new String(srettel); 

這需要更多的解釋。我們從右到左讀取輸入數組(i--),並且每當我們找到空格時,或者當我們最終點擊左側牆(i == -1)時,我們將發現的單詞([j++] =)複製()。我們跟蹤last中的單詞邊界。

+0

split()不是JAVA API嗎? – Mohanavel 2010-03-11 09:06:27

+0

@Mohanavel:從技術上來說,除了運營商以外的所有東西都是Java API ... – 2010-03-11 09:47:10

+2

+1對於srettel。 – 2010-03-11 09:51:20

0

我不知道Java,但這裏是最糟糕的情況。

如果你不想使用split()方法,然後

string text = "My name is Khan"; 

    int length = text.Length; 

    int numberOfWords = 0; 

    for (int i = 0; i < text.Length; i++) 
    { 
     if (text[i] == ' ') 
     { 
      numberOfWords++; 
     } 
    } 

    numberOfWords += 1; // no of words will be always plus one than no of space. 

    string[] wordCollection = new string[numberOfWords]; 

    int wordLocation = 0; 

    for (int i = 0; i < text.Length; i++) 
    { 
     if (text[i] == ' ') 
     { 
      wordLocation++; 
     } 

     wordCollection[wordLocation] += text[i]; 
    } 

    string reversedString = string.Empty; 

    foreach (string str in wordCollection) 
    { 
     reversedString = str + " " + reversedString; 
    } 

    Console.Write(reversedString.Trim()); 

如果這是家庭作業和其轉移到某一個,那麼你是寬鬆

+0

絕對不使用任何Java包;-) – 2010-03-18 18:09:26