2017-08-29 227 views
0

我有這個任務如下: 我有兩種方法可以同時修改字符串。 我已經搜索了很多帖子,但找不到答案。一種方法調用字符串的另一種方法

我想第二種方法修改(調用)第一個結果。 我是Java的新手,所以感謝您的耐心和理解。

分配: 第1部分 - 規範化文本

編寫一個叫做normalizeText方法,執行以下操作:

刪除所有的空格,從你的文字 刪除任何標點符號(。,:;'」!? ()) 將所有小寫字母轉換爲大寫字母 返回結果。 呼叫normalizeText(「這是一些\‘真正\’大(文本)!?」) 應該返回

「THISISSOMEREALLYGREATTEXT」

2部分 - 混淆

編寫一個叫做obify方法它接受一個String參數(消息被模糊處理)並返回一個字符串,其中每個元音(A,E,I,O,U,Y)前面都帶有字母「OB」(確保使用大寫字母)。

如果我們調用obify的「THISISSOMEREALLYGREATTEXT」,它應該返回

「THOBISOBISSOBOMOBEROBEOBALLOBYGROBEOBATTOBEXT」

我的代碼:

public class CryptoAssessment { 
    public static void main(String[] args) { 
     normalizeText("This is some \「really\」 great. (Text)!?"); 
    } 

public static void normalizeText(String string_to_encrypt){ 
    String upper_string = string_to_encrypt.toUpperCase(); 
    String Capital_Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
    String Result_after_Normalization = ""; 
    for (int i = 0; i < upper_string.length(); i++) { 
     if (Capital_Letters.contains(Character.toString(upper_string.charAt(i))))     
     { 
      Result_after_Normalization = Result_after_Normalization + Character.toString(upper_string.charAt(i)); 
     } 
    } 
    System.out.print(Result_after_Normalization); 
} 
public static void Obfuscation(String string_to_Obfuscate){ 
    String Vowel_Letters = "AEIOUY"; 
    String Result_after_Obfuscation = ""; 
    for (int i = 0; i < string_to_Obfuscate.length(); i++) { 
     if (Vowel_Letters.contains(Character.toString(string_to_Obfuscate.charAt(i))))     
     { 
      Result_after_Obfuscation = Result_after_Obfuscation + "OB" + Character.toString(string_to_Obfuscate.charAt(i)) ; 
     } 
     else { 
      Result_after_Obfuscation = Result_after_Obfuscation + Character.toString(string_to_Obfuscate.charAt(i)); 
     } 
    } 
    System.out.print(Result_after_Obfuscation); 
} 

}

+0

那麼....你現在有什麼問題?乍一看似乎很好。 – Shark

+1

是這樣的嗎? '迷惑(normalizeText(「這是一些\」真的\「很棒。(文本)!?」));' – Shark

回答

0

啊,我解決了你的問題。你不想簡單地在控制檯System.out上 - 你需要將這些字符串返回給調用者。

public static String normalizeText(String string_to_encrypt){ 
String upper_string = string_to_encrypt.toUpperCase(); 
String Capital_Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
String Result_after_Normalization = ""; 
for (int i = 0; i < upper_string.length(); i++) { 
    if (Capital_Letters.contains(Character.toString(upper_string.charAt(i))))     
    { 
     Result_after_Normalization = Result_after_Normalization + Character.toString(upper_string.charAt(i)); 
    } 
} 
System.out.print("After normalization: "+Result_after_Normalization); 
return Result_after_Normalization; 
} 

並讓使對方一個返回一個字符串以及

public static String Obfuscation(String string_to_Obfuscate){ 
String Vowel_Letters = "AEIOUY"; 
String Result_after_Obfuscation = ""; 
for (int i = 0; i < string_to_Obfuscate.length(); i++) { 
    if (Vowel_Letters.contains(Character.toString(string_to_Obfuscate.charAt(i))))     
    { 
     Result_after_Obfuscation = Result_after_Obfuscation + "OB" + Character.toString(string_to_Obfuscate.charAt(i)) ; 
    } 
    else { 
     Result_after_Obfuscation = Result_after_Obfuscation + Character.toString(string_to_Obfuscate.charAt(i)); 
    } 
} 
System.out.print("After obfuscation: "+Result_after_Obfuscation); 
return Result_after_Obfuscation; 
} 

而且現在main()變成這樣:

public static void main(String[] args) { 
    String result = obfuscate(normalizeText("This is some \「really\」 great. (Text)!?")); 
    System.out.println("Result after doing both: "+result); 
} 

打字這一點,昨晚,當我跑出來的電池,所以在延遲迴答。

+0

感謝大家提供的及時和有益的意見!我在這篇文章中學到了很多東西。 – Alan

1

要傳遞給調用的結果致電method2()

method2(method1("foo")) 

要完成你的任務:

public static void normalize(String str) { 
    return str.replaceAll("\\W", "").toUpperCase(); 
} 

public static void obfuscate(String str) { 
    return str.replaceAll("[AEIOU]", "OB$0"); 
} 
0

您可以使用方法的返回作爲另一種方法的說法,只要類型匹配。
首先改變你的方法的簽名是這樣的(使它們返回的值):

public static String normalizeText(String string_to_encrypt){...} 
public static String Obfuscation(String string_to_Obfuscate){...} 

然後你就可以使用返回值:

String temp = normalizeText("This is some \「really\」 great. (Text)!?"); 
String result = Obfuscation(temp); 

或者:

String result = Obfuscation(normalizeText("This is some \「really\」 great. (Text)!?"));