JAVA,使用String.format对同一变量插值n次
我想使用String.format方法插值相同的变量n次 例如JAVA,使用String.format对同一变量插值n次,java,string,format,interpolation,string-interpolation,Java,String,Format,Interpolation,String Interpolation,我想使用String.format方法插值相同的变量n次 例如 String value = "hi"; String interpolated = String.format(" %s %s %s %s ", value); 我想 System.out.println(interpolated) // " hi hi hi hi " 如果您使用的是java 11,则可以使用如下方法: String value = "hi "; System.out.println(value.repeat
String value = "hi";
String interpolated = String.format(" %s %s %s %s ", value);
我想
System.out.println(interpolated)
// " hi hi hi hi "
如果您使用的是java 11,则可以使用如下方法:
String value = "hi ";
System.out.println(value.repeat(nTimes));
要获取插值字符串,还可以使用类:
如果您使用的是java 11,则可以使用如下方法:
String value = "hi ";
System.out.println(value.repeat(nTimes));
要获取插值字符串,还可以使用类:
您可以这样做(同时根据发生率进行编码):
您可以通过以下方式对其进行变量化:
public String repeat(String string, int nbRepeat){
return String.format(" " + IntStream.range(0, nbRepeat)
.mapToObj(i -> "%s")
.collect(Collectors.joining(" ")),
IntStream.range(0, nbRepeat)
.mapToObj(
i -> string)
.toArray());
}
并使用它:
repeat("hi", 4);
repeat("ho", 6);
您可以这样做(同时根据发生率进行编码):
您可以通过以下方式对其进行变量化:
public String repeat(String string, int nbRepeat){
return String.format(" " + IntStream.range(0, nbRepeat)
.mapToObj(i -> "%s")
.collect(Collectors.joining(" ")),
IntStream.range(0, nbRepeat)
.mapToObj(
i -> string)
.toArray());
}
并使用它:
repeat("hi", 4);
repeat("ho", 6);
您可以使用以下代码段:
String s = "hi";
int n = 9;
String interpolated = String.format("%0"+ n +"d", 0).replace("0", s );
System.out.println(interpolated );
您可以使用以下代码段:
String s = "hi";
int n = 9;
String interpolated = String.format("%0"+ n +"d", 0).replace("0", s );
System.out.println(interpolated );
难道没有更干净的方法吗
这取决于你想如何使用它;如果要避免流,可以使用以下任一选项:
package sample;
import java.util.Arrays;
import java.util.Formatter;
public class JoinString {
public static void main(String[] args) {
String[] v = {"hi","hi","hi","hi"};
System.out.println(String.join(" ", v));
System.out.println(Arrays.asList(v));
Formatter formatter = new Formatter();
System.out.println( formatter.format("%1$1s %1$1s %1$1s", "hi"));
formatter.close();
System.out.format("%1$1s %1$1s %1$1s %n", "hi");
}
}
难道没有更干净的方法吗
这取决于你想如何使用它;如果要避免流,可以使用以下任一选项:
package sample;
import java.util.Arrays;
import java.util.Formatter;
public class JoinString {
public static void main(String[] args) {
String[] v = {"hi","hi","hi","hi"};
System.out.println(String.join(" ", v));
System.out.println(Arrays.asList(v));
Formatter formatter = new Formatter();
System.out.println( formatter.format("%1$1s %1$1s %1$1s", "hi"));
formatter.close();
System.out.format("%1$1s %1$1s %1$1s %n", "hi");
}
}
您可以使用for循环。请参阅下面的代码
Scanner sc = new Scanner(System.in);
System.out.println("Enter word : ");
String str = sc.next();
System.out.println("times : ");
int n = sc.nextInt();
for(int i =0 ; i < n; i++){
System.out.print(String.format("%s ", str));
}
Scanner sc=新扫描仪(System.in);
System.out.println(“输入单词:”);
字符串str=sc.next();
System.out.println(“times:”);
int n=sc.nextInt();
对于(int i=0;i
您可以使用for循环。请参阅下面的代码
Scanner sc = new Scanner(System.in);
System.out.println("Enter word : ");
String str = sc.next();
System.out.println("times : ");
int n = sc.nextInt();
for(int i =0 ; i < n; i++){
System.out.print(String.format("%s ", str));
}
Scanner sc=新扫描仪(System.in);
System.out.println(“输入单词:”);
字符串str=sc.next();
System.out.println(“times:”);
int n=sc.nextInt();
对于(int i=0;i
您可以为格式标记指定参数位置,在这种情况下,您将对所有标记使用相同的位置:
String interpolated = String.format(" %1$s %1$s %1$s %1$s ", value);
您可以为格式标记指定参数位置,在这种情况下,您将对所有标记使用相同的位置:
String interpolated = String.format(" %1$s %1$s %1$s %1$s ", value);
尝试
String.format(“%s%s%s%s”,value,value,value,value)
您也可以尝试使用for循环。@Daniele没有更干净的方法吗?尝试String.format(“%s%s%s%,value,value,value,value)
您也可以尝试使用for循环。@Daniele没有更干净的方法吗?我需要插值来使用那个字符串,不适合印刷only@tommasoballardini更新为MessageFormat.format
method我需要插值以使用该字符串,而不是用于打印only@tommasoballardini使用MessageFormat.format
方法更新