System.out.print()没有显示我期望的所有内容,并且意外地打印了新行

时间:2015-05-12 04:03:37

标签: java system.out

System.out.print()未在输出框中显示所有内容,当我输入多个字符时,它会自动生成一个新行。我输入了645个字符,当我按下输入时,它应该给我相应的215个字符。我应该使用System.out.print()以外的其他内容吗?

import java.io.*;

public class Animal {
  public static void main(String[] args) {
    int A = 0;
    int B = 1;
    int C = 2;
    System.out.print("codons=");
    String str = read();

    for (int num = 0; num <= str.length() / 3; num++) {
      if (str.charAt(A) == 'T' && str.charAt(B) == 'A' && str.charAt(C) == 'G') {
        System.out.print("a");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'G' && str.charAt(C) == 'T') {
        System.out.print("b");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'T' && str.charAt(C) == 'T') {
        System.out.print("c");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'T' && str.charAt(C) == 'T') {
        System.out.print("d");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'A' && str.charAt(C) == 'A') {
        System.out.print("e");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'G' && str.charAt(C) == 'C') {
        System.out.print("f");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'A' && str.charAt(C) == 'C') {
        System.out.print("g");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'C' && str.charAt(C) == 'A') {
        System.out.print("h");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'T' && str.charAt(C) == 'G') {
        System.out.print("i");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'T' && str.charAt(C) == 'T') {
        System.out.print("j");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'C' && str.charAt(C) == 'A') {
        System.out.print("k");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'A' && str.charAt(C) == 'C') {
        System.out.print("l");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'A' && str.charAt(C) == 'A') {
        System.out.print("m");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'G' && str.charAt(C) == 'C') {
        System.out.print("n");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'G' && str.charAt(C) == 'T') {
        System.out.print("o");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'C' && str.charAt(C) == 'A') {
        System.out.print("p");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'T' && str.charAt(C) == 'A') {
        System.out.print("q");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'T' && str.charAt(C) == 'A') {
        System.out.print("r");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'C' && str.charAt(C) == 'T') {
        System.out.print("s");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'G' && str.charAt(C) == 'A') {
        System.out.print("t");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'C' && str.charAt(C) == 'C') {
        System.out.print("u");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'T' && str.charAt(C) == 'G') {
        System.out.print("v");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'T' && str.charAt(C) == 'C') {
        System.out.print("w");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'G' && str.charAt(C) == 'T') {
        System.out.print("x");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'A' && str.charAt(C) == 'T') {
        System.out.print("y");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'G' && str.charAt(C) == 'G') {
        System.out.print("z");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'C' && str.charAt(C) == 'T') {
        System.out.print("0");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'T' && str.charAt(C) == 'T') {
        System.out.print("1");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'C' && str.charAt(C) == 'T') {
        System.out.print("2");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'A' && str.charAt(C) == 'T') {
        System.out.print("3");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'G' && str.charAt(C) == 'A') {
        System.out.print("4");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'C' && str.charAt(C) == 'G') {
        System.out.print("5");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'C' && str.charAt(C) == 'C') {
        System.out.print("6");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'A' && str.charAt(C) == 'T') {
        System.out.print("7");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'G' && str.charAt(C) == 'C') {
        System.out.print("8");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'T' && str.charAt(C) == 'A') {
        System.out.print("9");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'T' && str.charAt(C) == 'A') {
        System.out.print(" ");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'G' && str.charAt(C) == 'G') {
        System.out.println("");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'G' && str.charAt(C) == 'C') {
        System.out.print(">");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'G' && str.charAt(C) == 'G') {
        System.out.print("<");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'C' && str.charAt(C) == 'T') {
        System.out.print("+");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'A' && str.charAt(C) == 'G') {
        System.out.print("}");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'A' && str.charAt(C) == 'C') {
        System.out.print("/");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'C' && str.charAt(C) == 'A') {
        System.out.print("=");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'G' && str.charAt(C) == 'A') {
        System.out.print(".");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'A' && str.charAt(C) == 'G') {
        System.out.print("!");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'A' && str.charAt(C) == 'G') {
        System.out.print(":");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'G' && str.charAt(C) == 'A') {
        System.out.print("'");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'T' && str.charAt(C) == 'G') {
        System.out.print(",");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'C' && str.charAt(C) == 'G') {
        System.out.print("@");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'C' && str.charAt(C) == 'C') {
        System.out.print("-");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'G' && str.charAt(C) == 'G') {
        System.out.print("newline");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'T' && str.charAt(C) == 'C') {
        System.out.print("\\");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'A' && str.charAt(C) == 'A') {
        System.out.print("{");
      } else if (str.charAt(A) == 'G' && str.charAt(B) == 'A' && str.charAt(C) == 'C') {
        System.out.print("(");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'C' && str.charAt(C) == 'C') {
        System.out.print("&");
      } else if (str.charAt(A) == 'C' && str.charAt(B) == 'C' && str.charAt(C) == 'G') {
        System.out.print(")");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'T' && str.charAt(C) == 'C') {
        System.out.print("$");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'G' && str.charAt(C) == 'G') {
        System.out.print("]");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'T' && str.charAt(C) == 'C') {
        System.out.print("#");
      } else if (str.charAt(A) == 'T' && str.charAt(B) == 'G' && str.charAt(C) == 'T') {
        System.out.print(";");
      } else if (str.charAt(A) == 'A' && str.charAt(B) == 'T' && str.charAt(C) == 'G') {
        System.out.print("*");
      }
      A += 3;
      B += 3;
      C += 3;
    }
    System.out.println("");
  }

  public static String read() {
    byte[] buffer = new byte[647];
    try {
      int numBytes = System.in.read(buffer);
    } catch (IOException e) {
      System.out.print("Error: " + e);
      System.exit(1);
    }
    String str = new String(buffer);
    return (str);
  }

  public static void write(String str) {
    System.out.print(str);
  }
}

2 个答案:

答案 0 :(得分:1)

目前还不清楚你要做什么,但我会尽力给你一些指示,希望它们能帮助你解决问题。

  • 正确格式化代码。否则就无法阅读。
  • 使用有意义的变量名称。 ABCstr都毫无意义。如果您通过明确的变量和方法名称提供提示,那么人们(包括您自己)将更容易阅读您的代码。
  • 当你发现自己一遍又一遍地重写相同的代码行时(比如大量的条件列表),这是一个很好的提示,你应该重构你的代码。看起来您正在尝试将三个字符的组映射到单个字符,Map<String, String>可以在大约三行中轻松完成此操作。
  • 在这种情况下,仔细查看String提供的功能,特别是String.substring() - 您可以轻松获取每个三个字母的子字符串,而无需手动提取每个字符。
  • 避免重复的函数调用;即使您保留str.charAt()行为,也可以将它们放在for循环的顶部并将它们分配给变量,这样它们每次迭代只执行一次,然后每个条件只检查变量。 str.charAt()很快,但很多其他方法都没有,而且没有必要浪费一遍又一遍地调用相同方法的努力。
  • 无需直接读取System.in的字节流。您只需使用Scanner或必要时使用BufferedReader
  • 对于第一个println案例,您在条件块的中途有一个"GGG"。这是故意的吗?如果没有,这可能就是你看到意想不到的新线条的原因。否则,您的代码中没有任何内容会产生不合需要的新行,您的终端可能只是在视觉上将单行包装在多行上,这样您就可以看到整个输出。
  • 您永远不会使用write()方法;你可能应该删除它。

答案 1 :(得分:0)

这将为您提供215个字符,仅在您每次满足任何if条件时输入字符串中。否则它将无法打印任何东西。如果您仍然认为,您的输入字符串满足条件而您没有按预期获得输出,那么请分享您对此程序的输入。

对您的问题再做一次更正,对于以下条件,您使用的是System.out.println,而对于其他人则是System.out.print,如果这个条件得到满足,那么您将获得其他字符在新的一行。

   else if (str.charAt(A) == 'G' && str.charAt(B) == 'G'
                && str.charAt(C) == 'G') {
            System.out.println("");
        }