Java中的字符串构建使我感到困惑.我喜欢这样的事情:
url += "u1=" + u1 + ";u2=" + u2 + ";u3=" + u3 + ";u4=" + u4 + ";";
url += "x=" + u1 + ";y=" + u2 + ";z=" + u3 + ";da1=" + u4 + ";";
url += "qty=1;cost=" + orderTotal + ";ord=" + orderId + "?";
Run Code Online (Sandbox Code Playgroud)
或者,使用StringBuilder,如下所示:
url.append("u1=");
url.append(u1);
url.append(";u2=");
url.append(u2);
url.append(";u3=");
url.append(u3);
url.append(";u4=");
url.append(u4);
url.append(";");
url.append("x=");
url.append(u1);
url.append(";y=");
url.append(u2);
url.append(";z=");
url.append(u3);
url.append(";da1=");
url.append(u4);
url.append(";");
url.append("qty=1;");
url.append("cost=");
url.append(orderTotal);
url.append(";ord=");
url.append(orderId);
url.append("?");
Run Code Online (Sandbox Code Playgroud)
我错过了一些东西.GOT是一种更好的方式.就像是:
代替:
urlString += "u1=" …Run Code Online (Sandbox Code Playgroud) 使用sl4fj,如果我想构造一个字符串消息,有一个很好的方法,它使用替换.例如,它可能是这样的:
logger.info("Action {} occured on object {}.", objectA.getAction(), objectB);
Run Code Online (Sandbox Code Playgroud)
如果需要更多的替换,那么它是这样的:
logger.info("Action {} occured on object {} with outcome {}.",
new Object[]{objectA.getAction(), objectB, outcome});
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否有一种通用的方式来创建一个字符串(而不仅仅是一个slf4j日志消息)?就像是:
String str = someMethod("Action {} occured on object {}.", objectA.getAction(), objectB);
Run Code Online (Sandbox Code Playgroud)
要么
String str = someMethod("Action {} occured on object {} with outcome {}.",
new Object[]{objectA.getAction(), objectB, outcome});
Run Code Online (Sandbox Code Playgroud)
如果它在标准Java库中,那么"someMethod"会是什么?
在Java中有更优雅的方式吗?
String value1 = "Testing";
String test = "text goes here " + value1 + " more text";
Run Code Online (Sandbox Code Playgroud)
是否可以将变量直接放在字符串中并评估其值?
我是Java的初学者,我正在使用newboston的java教程(youtube).在教程36-37,他开始使用String.format(); 他在过去的教程中没有解释过.这是他正在制作的课程的代码:
public class tuna {
private int hour;
private int minute;
private int second;
public void setTime(int h, int m, int s){
hour = ((h >= 0 && h < 24) ? h : 0);
minute = ((m >= 0 && m < 60) ? m : 0);
second = ((s >= 0 && s < 60) ? s : 0);
}
public String toMilitary(){
return String.format("%02d:%02d:%02d", hour, minute, second);
}
}
Run Code Online (Sandbox Code Playgroud)
所以他正在做的是他正在做一些军事时间类并使用String格式.所以我要问的是,有人可以向我解释String.format()的工作原理以及上面的格式是如何工作的.谢谢您的帮助!
public static void main(String[] args) {
int num1 = 1;
int num2 = 1;
int result = num1 * num2;
System.out.println("%d x %d = %d\n",num1,num2,result);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试打印出像"1*10 = 10"这样的表格.但是我收到一个错误:
PrintStream类型中的方法println(int)不适用于参数(String,int,int,int)".
我不知道问题是什么,我该怎么改变它?
Groovy 支持字符串插值操作。这是一个例子
def name = "Tom"
println("Hello my name is ${name}")
Run Code Online (Sandbox Code Playgroud)
Java 8 是否像 Groovy 那样支持字符串插值?
任何答案,不胜感激。谢谢
从 Java 15 开始,String.format 可以替换为 String#formatted。
有没有一个简单的方法来代替这个
String.format("%s foo %s bar", bar(), foo());
Run Code Online (Sandbox Code Playgroud)
IntelIJ IDEA Ultimate 中有这个吗?
"%s foo %s bar".formatted(bar(), foo());
Run Code Online (Sandbox Code Playgroud)