java - Java中的乘法表使用方法
问题描述
编写一个方法,该方法根据两个输入值返回一个乘法表,这两个输入值指定要相乘的两个数字范围。例如,如果方法被指定为 3 和 4 作为输入,它将返回一个字符串,当打印时,它看起来像这样:
1 2 3 4
2 4 6 8
3 6 9 12
输出要求:
每个数字后面必须跟一个制表符。每行后面必须跟一个换行符(包括最后一行)。列和行的范围应为 1 到输入数字。方法签名应如下所示:
公共静态字符串乘法表(整数行,整数列){}
完成此方法后,从 main 调用 testMT() 方法以确保它按预期工作。
public static String multiplicationTable(int rows, int columns) {
for(int i = 1; i <= rows; i++){
for(int j = 1; j <= columns; j++) {
int num = i * j;
String a = "" + num +"\t";
}
System.out.println("");
}
return String.format("%s", a);
}
public static void testMT() {
System.out.println("Testing Multiplication Table");
String expected = "1\t2\t3\t4\t\n2\t4\t6\t8\t\n3\t6\t9\t12\t\n";
System.out.print("Expecting:\n" + expected);
String actual = multiplicationTable(3, 4);
System.out.print("Actual:\n" + actual);
boolean correct = expected.equals(actual);
System.out.println("Outputs equal? " + correct);
}
这是我的输出:
测试乘法表期望:
1 2 3 4
2 4 6 8
3 6 9 12
实际的:
12 输出相等?错误的
我觉得我的设置正确,但我不知道如何获得预期的输出。
解决方案
您的multiplicationTable
方法是打印,并不完全合法。构建表并返回它。就像是,
public static String multiplicationTable(int rows, int columns) {
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= columns; j++) {
int num = i * j;
sb.append(num).append('\t');
}
sb.append('\n');
}
return sb.toString();
}
没有其他更改,然后我得到
Testing Multiplication Table
Expecting:
1 2 3 4
2 4 6 8
3 6 9 12
Actual:
1 2 3 4
2 4 6 8
3 6 9 12
Outputs equal? true
推荐阅读
- spring - 使用带有中心化配置服务器的 keycloak 保护微服务中的服务
- html - 仅当页面足够小时才使页脚粘在底部
- aem - 如何只调用一次吊索模型
- sql - 带 2 个参数的 RTRIM
- cucumber - Cucumber: Running features parallely in 4.2
- xcode - Xcode 无法构建:“无法解析构建文件:XCBCore.BuildFile”
- windows - How to install OpenCV with minGW on an offline machine?
- c# - 过滤来自另一个大列表的数据的大列表对象:性能下降
- c++ - remove the character instance from string problem with remove
- python - Passing command line arguments in python - is there more than one standard input?