for (int i= 0; i<inputAxiom.length(); i++)
{
char c=inputAxiom.charAt(i);
if (c == 'f' || c == 'h' || c == 'g')
{
if (rules[0].equals("f") || rules[0].equals("h"));
{
inputAxiom = rules[1];
}
您好,我想做的是从inputAxiom获取用户输入,对于每个f或h,我希望输入的那一部分进行更改
例如:如果inputAxiom = fff且规则为f = f-h(这将f置于rules [0]并将f-h置于rules [1])
那么它将更改为f-hf-hf-h(将每个f更改为f-h)
目前,只要找到f,就将整个事物更改为f-h,而不是每个f
我认为这与
inputAxiom = rules[1];
但我不确定如何解决它
最佳答案
字符串是不可变的。您不能更改现有String实例的一部分。您可以做的是将其替换为原始字符串的修改后的副本。
例如,要将所有f
替换为f-h
,您可以这样做:
outputAxiom = inputAxiom.replaceAll("f", "h-f");
操纵字符串的另一种可能性是
StringBuilder
API(不要将其误认为StringBuffer
,现在不再建议使用)。关于java - 更改输入中的字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15149437/