相关疑难解决方法(0)

字符串变量插值Java

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)

java string-interpolation

154
推荐指数
5
解决办法
13万
查看次数

是否有类似于sl4fj的通用字符串替换函数?

使用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

75
推荐指数
4
解决办法
6万
查看次数

在没有连接的情况下将Java字符串插入另一个字符串中?

在Java中有更优雅的方式吗?

String value1 = "Testing";  
String test = "text goes here " + value1 + " more text";
Run Code Online (Sandbox Code Playgroud)

是否可以将变量直接放在字符串中并评估其值?

java string

22
推荐指数
2
解决办法
5万
查看次数

如何在Java中使用String.format()?

我是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()的工作原理以及上面的格式是如何工作的.谢谢您的帮助!

java string formatting class

22
推荐指数
2
解决办法
5万
查看次数

PrintStream类型中的方法println(int)不适用于参数(String,int,int,int)

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)".

我不知道问题是什么,我该怎么改变它?

java

5
推荐指数
3
解决办法
4927
查看次数

Java 8 是否支持插值

Groovy 支持字符串插值操作。这是一个例子

def name = "Tom"
println("Hello my name is ${name}")
Run Code Online (Sandbox Code Playgroud)

Java 8 是否像 Groovy 那样支持字符串插值?

任何答案,不胜感激。谢谢

java groovy java-8

5
推荐指数
1
解决办法
1万
查看次数

将 String.format 调用转换为 String#formatted 的简单方法?

从 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)

java intellij-idea

5
推荐指数
1
解决办法
275
查看次数