给定一个字符串I #eat# #hamburgers#
和一个StringBuilder eat: [eat, consume, like] hamburgers: [hamburgers, spinach, bananas]
,我想随机地用字库中随机选择的字符替换hashmarks中的字,以便I like bananas
和{{ 1}}将生成。已经写了一个随机选择另一个单词的代码,给出一个代币(即吃饭,汉堡包)。
我需要使用这个正则表达式#[^#] +#来查找hashmarks包含的初始字符串中的单词,将它们传递给replace方法,然后将它们的随机关联放回到初始字符串中。我尝试使用StringTokenizer,但意识到它不是工作的工具。
我需要以某种方式提取hashmarks中的第一个单词并将其传递给调用其替换的方法,然后再调用方法archetypeString(#[^#] +#,replacement),以便在循环再次运行时,然后使用第二个哈希词来处理单词grabber& passer-to方法和替换方法。
tokenizer dead-end:
I consume spinach
和getPhrase方法:
StringTokenizer stt = new StringTokenizer(archetype);
while(stt.hasMoreTokens()){
String temp = stt.nextToken();
if(temp.charAt(0)=='#');
}
答案 0 :(得分:1)
我需要使用这个正则表达式#[^#] +#来查找hashmarks包含的初始字符串中的单词,将它们传递给replace方法,然后将它们的随机关联放回到初始字符串中。我尝试使用StringTokenizer,但意识到它不是工作的工具。
从您的问题中不清楚这是否是一些虐待性家庭作业的一部分,或者只是您想要解决的任何问题的第一种方式。这不是一个正则表达式问题,而是一个StringTokenizer问题。
查看String.format()以及Formatter的格式化功能。我不明白为什么你需要知道你生成的最后一个字符串是什么,如果你的对象是随机生成下一个。只需选择一个新的随机值并使用String.format()格式化它。
-
在阅读您对此答案的评论并查看您提到的问题后,我将提出一些建议。
(1)从一个更简单的编码分配开始,或两个没有正则表达式的东西。确保您完全理解以下概念:实例变量。变量范围。公共方法与私人方法。将参数传递给方法,并从方法返回值。你可以做很多事情。在你把所有这些都冷落之前,你不需要学习继承,我建议你不要尝试。
(2)对于至少前5个的每个编码分配,确保你已经写出了你的程序作为数据提供的内容以及它应该产生的输出。列出某人单独给你的任何约束(必须使用类X,必须显示错误消息,无论如何)。
(3)将开口支架和关闭支架单独放在线上;匹配每个开口支架与闭合支架缩进相同的数量。在每对括号内缩进代码,在右边的另外2或3个空格中。这意味着其他支撑对内的支撑对将进一步缩进。我知道这不是你看到大多数代码的方式,很多人会告诉你它是“错误的”。但是,在您熟悉范围以及代码中的给定位置是在方法还是循环之外或之外时,我认为最好是给自己这些额外的视觉提示。对于不熟悉其他做事方式的人来说,这是最简单的。
(4)发布此处时请注意您的条款。在你提到的另一个问题中,你说它是关于继承的,但它使用“implements”,表明它正在实现一个接口,而不是从一个类继承。如果你的术语出错了,我们这些试图帮助你的人会感到困惑。
(5)当你在这里发帖时:发布整个节目(这些早期作业总共应该在100行以下,没有理由不发布所有节目)。确保它正确缩进;使用空格而不是制表符。在文本中,也可能在注释中,指出代码中您似乎遇到问题的位置(如果您知道)。如果有错误消息,请发布整个错误消息(不要告诉我们它是什么,并且不要尝试为我们解释它)。处理您的代码,直到您遇到特定问题:为什么我在这里遇到编译错误?为什么我得到(或没有得到)这个输出?该程序输出X但我预计Y,为什么?等
我们不是教学店;我们大多数人都需要学习编程的指导,而你需要在这里的其他地方获得大部分。我们愿意帮助您解决问题,因为您的问题具体而且合理,并且您不希望我们提供相关指示。就其本身而言,“我迷失并需要帮助”有点超出了StackOverflow的正常操作方式。