我在编程界和Javaland都是新手。 我正在尝试学习循环并用它解决模式。
我想使用for循环绘制此模式:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<HashMap<String, String>> input = new ArrayList<>();
HashMap<String, String> subinput1 = new HashMap<>();
subinput1.put("name", "name1");
subinput1.put("rollno", "rollno1");
input.add(subinput1);
HashMap<String, String> subinput2 = new HashMap<>();
subinput2.put("name", "name2");
subinput2.put("rollno", "rollno2");
input.add(subinput2);
HashMap<String, HashMap<String, String>> result = (HashMap<String, HashMap<String, String>>) input.stream()
.collect(Collectors.toMap(v -> (String) v.get("rollno"), e -> e));
System.out.println(result);
}
}
我正在使用以下代码来实现这一目标:
*
**
***
****
*****
但是,我只能在15行中得到*,而不是在模式中。 拜托,有人可以在这里帮助解决此问题吗?
先谢谢了。
答案 0 :(得分:4)
如果您使用的是JDK 11,则可以编写以下代码:
for(int i = 0; i < 5; i++) {
System.out.println("*".repeat(i+1));
}
使用String.repeat(),您可以用更少的代码完成相同的事情。
答案 1 :(得分:2)
您的for循环似乎很奇怪。
应该这样读取循环:
对于从int
开始的i
0
,循环只要 i<5
,然后 次,执行i++
“
for(int i = 0; i<5, i++){
System.out.println("*" \n);
}
这将打印5行:
*
*
*
*
*
现在每行中都需要一个*
,并且您可能想要删除\n
中已经包含的println
因此,无需打印"*"
,而是在循环之前创建一个String
,并在每次迭代时向其中添加一个新的*
:
String line =""; // we start with an empty string
for(int i=0; i<5; i++){
line= line+"*"; // before printing we add a new *
System.out.println(line); // then we print it
}
它应该(未经测试)导致以下结果:
*
**
***
****
*****
答案 2 :(得分:1)
尝试此代码:
public class Main {
public static void main(String[] args) {
int i, j, n =5;
for(i=0; i<n; i++) {
for(j=0; j<=i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}