【发布时间】:2018-04-12 05:18:24
【问题描述】:
假设我有ABab,我想用ACac 替换A,用CAca.... 替换a。我尝试的输出给了我ACCAcacBCAcab,而它应该是ACacBCAcab 我不确定如何绕过它,因为你可以看到它也改变了输入Acac 中的小写a。我希望能够将这些一直输入到Z,如您所见haha,这是我的代码:
import java.util.*;
public class Nails
{
public static void main(String[] args)
{
Scanner i = new Scanner(System.in);
String[][] comms = { { "ACac", "CAca" }, { "ADad", "DAda" }, { "AEae", "EAea" }, { "AFaf", "FAfa" },
{ "AGag", "GAga" }, { "AHah", "HAha" }, { "AIai", "Iaia" }, { "AJaj", "JAja" }, { "AKak", "KAka" },
{ "ALal", "LAla" }, { "AMam", "MAma" }, { "ANan", "NAna" }, { "AOao", "OAoa" }, { "APap", "PApa" },
{ "AQaq", "QAqa" }, { "ARar", "RAra" }, { "ASas", "SAsa" }, { "ATat", "TAta" }, { "AUau", "UAua" },
{ "AVav", "VAva" }, { "AWaw", "WAwa" }, { "AXax", "XAxa" }, { "AYay", "YAya" }, { "AZaz", "ZAza" } };
String Master = "ABab";
String S = Master; //Slave String
String Tmp = S;
System.out.println("Amount of Nails: ");
int N = i.nextInt(); //Nails
if(N < 2)
{
System.out.println("Sorry, You Must input a number Greater than or Equal to 2");
}
if(N == 2)
{
System.out.println(Master);
}
else
{
for(int c = 0; c < N - 2; c++) //C for Counter, subtracting 2 because method wont run if it is <= 2 and 'Comms' starts on 0 which would be 3 Nails
{
System.out.println(S);
S = S.replace("A", Comms[c][0]);
S = S.replace("a", Comms[c][1]);
System.out.println(S);
}
}
}
}
小写字母代表大写字母的合成,这就是为什么每添加 1 个“钉子”就有 2 个条目。我正在制作这个程序,以便能够为这个谜题创建一个公式生成器: Nail Puzzle。如果有帮助,视频创建者还会解释一些数学计算。 谢谢。
【问题讨论】:
-
对我来说,这看起来不像是与任何标签相关的问题,它只是寻找合适算法的问题,为此问题的标题不太清楚。跨度>
-
@Stephan Hernmann - 我没有代表选择任何合适的标签,而且我在 eclipse 中工作,正在做 java,需要字符串帮助,我不记得为什么我放正则表达式,但我可以假设因为整个项目都是基于一个谜题。你说得对,我需要找到一个算法,我什至不知道如何理解这个来制作一个简洁而恰当的标题,因为我的代码知识非常基础,对不起标题