2017-08-29 179 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)!?"));