Java 替换字符串[]中的一些随机选择
我有这样的想法:Java 替换字符串[]中的一些随机选择,java,grammar,Java,Grammar,我有这样的想法: import java.util.Random; public class gramatica { public static void main(String[] args) { String [] Vt = {"S","R","L"}; String [] Vn = {"a","b","c","d","e","f"}; String [] S = { "aS","bS","cR","dL" }; St
import java.util.Random;
public class gramatica {
public static void main(String[] args) {
String [] Vt = {"S","R","L"};
String [] Vn = {"a","b","c","d","e","f"};
String [] S = {
"aS","bS","cR","dL"
};
String[] R = {
"dL","e"
};
String []L = {
"fL","eL","d"
};
System.out.println(S[0]);
String random = (S[new Random().nextInt(S.length)]);
String chop = (S[new Random().nextInt(S.length)]);
System.out.println("S->"+random);
如果在从S中进行随机选择并获得例如“cR”之后,我想替换字符串[]R中的一些随机选择,而不是“R”,我应该如何进行呢?
例子:
看,我从S开始,然后我从S得到random,如果我得到cR,我只用R字符串数组中的random替换R。S->cR->cdL(而不是R我放dL)我想这就是你想要的:
import java.util.Random;
public class gramatica {
public static void main(String[] args) {
String [] Vt = {"S","R","L"};
String [] Vn = {"a","b","c","d","e","f"};
String [] S = {
"aS","bS","cR","dL"
};
String[] R = {
"dL","e"
};
String []L = {
"fL","eL","d"
};
//System.out.println(S[0]);
String rule = "S";
Random r = new Random();
// Make a loop
while(true) {
if(rule.contains("S")) {
rule = rule.replaceFirst("S", S[r.nextInt(S.length)]);
continue;
};
if(rule.contains("R")) {
rule = rule.replaceFirst("R", R[r.nextInt(R.length)]);
continue;
};
if(rule.contains("L")) {
rule = rule.replaceFirst("L", L[r.nextInt(L.length)]);
continue;
};
// Nothing to change, break loop
break;
};
// Now we got a random possible rule for S! :)
System.out.println("S->"+rule);
};
};
此代码将为您的语法生成一个随机可能的字符串。:) 好的,第一件事首先:这个问题是关于Java的,所以标签就是这样。是的,很抱歉这是上一个问题。问题是,当它是例如cR时,我不知道如何只替换R。我真的不理解这个问题。。。我试过了,我从S开始,然后从S得到random,如果我得到cR,我只用R字符串数组中的random替换R。S->cR->cdL(而不是R我放dL)非常感谢您的帮助!这将是足够的,所以,请点击“接受答案”,这样我在这里得到一些声誉=普东:3.再次感谢你