为字符串

时间:2017-08-29 22:48:03

标签: java string methods

我在下面有这个作业: 我有两种方法可以同时修改字符串。 我搜索过很多帖子但找不到答案。

我希望第二种方法修改(调用)第一种方法的结果。 我是Java的新手,所以感谢您的耐心和理解。

分配: 第1部分 - 规范化文本

编写一个名为normalizeText的方法,它执行以下操作:

从文本中删除所有空格 删除任何标点符号(。,:;'“!??()) 将所有小写字母转换为大写字母 返回结果。 调用normalizeText(“这是一些”真的很“。(文字)!?”) 应该返回

“THISISSOMEREALLYGREATTEXT”

第2部分 - 混淆

编写一个名为obify的方法,它接受一个String参数(要被混淆的消息)并返回一个字符串,其中每个元音(A,E,I,O,U,Y)前面都有字母“OB”(一定要用大写字母)。

如果我们在“THISISSOMEREALLYGREATTEXT”上调用obify,它应该返回

“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); 
}

}

3 个答案:

答案 0 :(得分:1)

将通话结果method1()传递给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");
}

答案 1 :(得分:0)

只要类型匹配,您就可以使用方法的return作为另一个方法的参数 首先像这样改变方法的签名(让它们返回一个值):

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)!?"));

答案 2 :(得分: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);
}

昨晚当我用完电池时输入了这个,所以应该延迟回答。