从循环中,我将获得l
的值。
想象这个值是3。
因此,我想要一个字符串重复3次。这意味着我想要执行字符串* l,但这是不可能的,因为一个是字符串,一个是int。我确实需要重复l
次字符串。
e.g。如果输入的字符串为"cat"
且l
的结果为3,则会得到"catcatcat"
的输出。
三江源
这是我的编码:
import java.util.Scanner;
public class Task2 {
public static void main (String[] args){
Scanner kb=new Scanner(System.in);
System.out.println("Please give me a message:");
String strMessage = ("^[?=.*!@#$%^&*]+$");
strMessage=kb.nextLine();
System.out.println("Thank you! Now please give me a keyword:");
String strKeyword=kb.nextLine();
String strAlphabet= "abcdefghijklmnopqrstuvwxyz";
double Intlength2 = strKeyword.length();
double Intlength = strMessage.length();
double Intlength3 = Intlength/Intlength2;
Intlength3 = Intlength/Intlength2;
for (int l=0; l<Intlength3; l++){
答案 0 :(得分:6)
制作StringBuilder
并附加字符串l
次
StringBuilder sb = new StringBuilder();
for (int i = 0; i < l; ++i) {
sb.append(string);
}
String result = sb.toString();
如果你使用Java 8,那么这个&#34;简单&#34;一个班轮:
String result = IntStream.range(0, l).mapToObj(i -> string).collect(Collectors.joining());
使用Guava库的解决方案:
String result = Strings.repeat(string, l);
使用Apache Commons库的解决方案:
String result = StringUtils.repeat(string, l);
作为旁注,l
不是一个好的变量名,因为它看起来像第一。
答案 1 :(得分:0)
以下是另外两个Java 8单行:
String result = Stream.generate(() -> "cat").limit(3).collect(Collectors.joining());
String result = Collections.nCopies(3, "cat").stream().collect(Collectors.joining());