我正在 Java 中运行进化算法,它允许使用以下元素创建字符串:
X, Y, 0, max(, s(, ) and ,
我正在尝试从头开始演化具有先前确定的长度的不同字符串,以生成以下内容:
max(Y,X)=Y;max(s(Y))=0;max(0,X)=0;
但是,在某些情况下我会得到这样的结果:
max(YX,X)=YX;max(s(Y))=Y0;max(0,X)=0X;
要生成语法上有效的表达式,我需要清理字符串,在这种情况下仅选择一个不同的相邻字符:
max(YX,X)=YX --> max(Y,X)=X OR
max(Y,X)=Y OR
max(X,X)=Y and so on ...;
我该怎么做?是否可以在这个特定表达式中随机选择的字符数之间分配一个概率?
最佳答案
String
是不可变的。使用 StringBuilder
生成字符串。它允许在创建最终字符串之前清理和删除字符。
关于java - Java中清理字符串的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27348319/