如何在此模式上循环以使该模式可以变成这样(用X代替_) 我知道我可以像为每个循环定义n = 0和n + 2一样使它递增2,但是会出现这样的问题
XX_XXXXXXXXXX
XX_X_XXXXXXXX
XX_X_X_XXXXXX
public static void main(String[] args)
{
String a = "XXXXXXXXXXXXX";
char[]abc = a.toCharArray();
for(int i=0;i<3;i++)
{
int n=2;
abc[n]='_';
a = String.valueOf(abc);
System.out.println(abc);
}
}
我上面发布的代码是没有循环的代码
如果循环成功,我希望输出将是这样
XX_XXXXXXXXXX
XXXX_XXXXXXXX
XXXXXX_XXXXXX
任何建议或帮助将不胜感激
答案 0 :(得分:2)
您应该执行以下操作以使输出看起来像预期的那样:
i
代替块变量n
作为数组索引。这样可以确保'_'
的位置在每一步上都移位'_'
恢复为'X'
。这使得'_'
转移而不是重复我故意不提供任何代码,因为问题看起来更像是培训任务,并且弄清楚正确的指示应该可以解决问题。
答案 1 :(得分:0)
您可以使用整数'_'
来轻松添加并保留要拥有List
字符的位置。每次运行主循环时,您都可以通过嵌套循环访问预期的位置。最后,您添加下一个'_'
位置,该位置将在下次使用。
import java.util.ArrayList;
import java.util.List;
public static void main(String[] args) {
String a = "XXXXXXXXXXXXX";
char[]abc = a.toCharArray();
List<Integer> placeHolders = new ArrayList<>();
placeHolders.add(2);
for(int i=0;i<3;i++)
{
for(int j = 0; j < placeHolders.size(); j++)
abc[placeHolders.get(j)]='_';
System.out.println(abc);
//Accessing the latest record of the list
placeHolders.add(placeHolders.get(placeHolders.size()-1)+2);
}
}