Java 打印一行点和其他两个代表答案的符号

Java 打印一行点和其他两个代表答案的符号,java,Java,我需要创建一条有100个点但在不同位置有2个符号的线。一个是“X”,这是真实答案,另一个是“O”,代表用户的猜测。真实答案(“X”)是一个随机变量,用户猜测(“O”)是用户的输入 它必须是这样的: O….X 我刚开始需要一点帮助。该项目的其余部分已经完成,但这只是最后一步,我不知道如何继续。我尝试过使用数组,但没有成功。谢谢 一些伪代码让您开始 int userGuess = ... user giving you input int randomTarget = ... some random

我需要创建一条有100个点但在不同位置有2个符号的线。一个是“X”,这是真实答案,另一个是“O”,代表用户的猜测。真实答案(“X”)是一个随机变量,用户猜测(“O”)是用户的输入

它必须是这样的: O….X


我刚开始需要一点帮助。该项目的其余部分已经完成,但这只是最后一步,我不知道如何继续。我尝试过使用数组,但没有成功。谢谢

一些伪代码让您开始

int userGuess = ... user giving you input
int randomTarget = ... some random number

for (int i=0; i < 100; i++) {
  if (i == userGuess) print "O"
  else if (i == randomTarget) print "X"
       else print "."
intuserguess=。。。给你输入的用户
int randomTarget=。。。一些随机数
对于(int i=0;i<100;i++){
如果(i==userGuess)打印“O”
否则,如果(i==randomTarget)打印“X”
否则打印”
作为记录:您需要计算当userGuess==randomTarget时打印什么


Java代码留给读者作为练习!

这使用Java IntStream而不是循环

public static void main(String[] args)
  {
    int answer = 57;
    int guess = 14;

    IntStream.range(0, 100).forEach(i -> {
      if (i == answer)
      {
        System.out.print('X');
      }
      else if (i == guess)
      {
        System.out.print('O');
      }
      else
      {
        System.out.print('.');
      }
    });
  }

非常普通、直截了当的解决方案:

String foo(int answer, int guess, int size) {
    char[] line = new char[size];
    Arrays.fill(line, '.');
    line[answer] = 'X';
    line[guess] = 'O';
    return new String(line);
}

请看如何提问。很好;除了命名-为什么不称它为“GeneratedAttedLine()”或其他什么。当它非常清楚应该做什么时,为什么称它为foo?!方法名称是主观的,很容易更改。并且您正在尝试为“永恒”给出答案;因此:以身作则。命名是编程最重要的方面之一。@GhostCat这正是我之所以称它为“foo”的原因。请看。(特别是)我们同意我们的不同意见。当编写仅为“显示”而存在的示例代码时,foo/bar是“有用”的名称一些概念作为代码。但是:你的方法有一个专门的目的。它有一个明确的含义。给它起一个“不”的名字是没有意义的。你看,foo/bar给人的印象是名称不重要。但它们确实重要!我不会向一个绝对的初学者建议流。我想他将有足够的困难来处理一个普通的for循环。