我在下面有这个作业: 我有两种方法可以同时修改字符串。 我搜索过很多帖子但找不到答案。
我希望第二种方法修改(调用)第一种方法的结果。 我是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);
}
}
答案 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);
}
昨晚当我用完电池时输入了这个,所以应该延迟回答。