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/

10-09 00:19