如何修改此程序只打印三行,意图第二和第三开始空格。我的if语句似乎不起作用
package com.TnationChallange;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
for (String part : getParts("screen space to display information", 7, 3)) {
System.out.println(part);
}
}
private static List<String> getParts(String string, int partitionSize, int maxLine) {
List<String> parts = new ArrayList<String>();
int len = string.length();
for (int i = 0; i < len; i += partitionSize) {
parts.add(string.substring(i, Math.min(len, i + partitionSize)));
maxLine++;
if (maxLine == 3) {
break;
}
}
return parts;
}
}
答案 0 :(得分:1)
您传递给getParts
方法的第三个参数是3
,因为您在maxLine++
之前调用if (maxLine == 3)
该条件永远不会是true
。
你应该使用这样的东西:
....
maxLines--;
if(maxLines == 0){
....
}
.....
答案 1 :(得分:0)
您需要一个不同的变量来计算行数。
package com.TnationChallange;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
for (String part : getParts("screen space to display information", 7, 3)) {
System.out.println(part);
}
}
private static List<String> getParts(String string, int partitionSize, int maxLine) {
List<String> parts = new ArrayList<String>();
int len = string.length();
int count = 0;
for (int i = 0; i < len; i += partitionSize) {
parts.add(string.substring(i, Math.min(len, i + partitionSize)));
count++;
if (maxLine == count) {
break;
}
}
return parts;
}
}
这假设您希望通过maxLine限制结果。