相关疑难解决方法(0)

Java打印包含多个整数的字符串

刚刚开始学习java,似乎无法弄清楚这一点.我正在学习learnjavaonline.org上的教程,它教你一些事情,然后要求你编写一个代码来做一个特定的事情,然后检查输出以查看它是否正确.问题是,如果它不正确,它没有说明原因,或者给你一个正确代码的例子.

它希望我使用所有基元输出一个字符串"H3110 w0r1d 2.0 true"

我想出了这个

public class Main {
public static void main(String[] args) {
    char h = 'H';
    byte three = 3;
    short one = 1;
    boolean t = true;
    double ten = 10;
    float two = (float) 2.0;
    long won = 1;
    int zero = 0;

    String output = h + three + one + ten + " " + "w" + zero + "r" + won + "d " + two + " " + t; …
Run Code Online (Sandbox Code Playgroud)

java string integer output

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

StringBuffer append()或String +?

可能重复:
java字符串连接
StringBuilder vs Java中toString()的字符串连接

我读过一些关于append()的文章比+快得多,但是原因是什么,为什么我们会使用+ over append()呢?谢谢!

java performance

2
推荐指数
1
解决办法
524
查看次数

Java与Python中的"+"运算符

有人能解释为什么Java在以下示例中连接字符串和整数吗?

public class main {

    public static void main(String[] args) {
        System.out.println("test" + 5);
        System.out.println(5 + "5");
    }

}
Run Code Online (Sandbox Code Playgroud)

与Python的+运营商实现有什么不同.

在Python中,这提出了一个TypeError:

"5" + 5
Run Code Online (Sandbox Code Playgroud)

python java string

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

使用 + 运算符连接两个字符串时未创建引用

我正在尝试连接两个字符串,一个字符串具有某个值,另一个字符串具有空值。

例子:

String string1="Great"
String string2="";
Run Code Online (Sandbox Code Playgroud)

并使用 concat 函数和 + 运算符连接这两个字符串

例子:

 String cat=string1.concat(string2)
 String operator=string1+string2
Run Code Online (Sandbox Code Playgroud)

根据我的理解,当在 concat 函数中使用空字符串时,由于 string2 为空,因此不会创建新的引用。但是在使用 + 运算符时,将在字符串池常量中创建一个新引用。但在下面的代码中,使用 + 运算符时不会创建新引用。

public class Main {
    
    public static void main(String[] args) {
        String string1="Great",string2="";

        String cat=string1.concat(string2);
        if(string1==cat)
        {
            System.out.println("Same");
        }
        else
        {
            System.out.println("Not same");
        }
        String operator=string1+string2;
        if(operator==string1)
            System.out.println("Same");
        else
            System.out.println("Not same");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

字符串 1:69066349

猫:69066349

相同的

字符串1:69066349

接线员:69066349

不一样


从上面的代码来看,由于它使用 + 运算符,变量 : 运算符的引用应该引用新内存,但它指向 string1 引用。请解释一下上面的代码。

java string string-concatenation

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

使用哪一个 - 串联中的String或StringBuffer

我在项目中看到了java代码,它从各种参数构造一个文件名.java代码是这样的

String file = null;
String fileDirSeperator = System.getProperty("file.separator");
String pwd = System.getProperty("user.dir");
file = pwd + fileDirSeperator + "properties" + fileDirSeperator + folder_name + file_name;
Run Code Online (Sandbox Code Playgroud)

我想知道我是否应该StringBuffer代替你String.我知道将任何内容附加到String会创建新对象,所以我想我应该StringBuffer.

我可以知道你的建议吗?

也,

 file = pwd + fileDirSeperator + "properties" + fileDirSeperator + folder_name + file_name;
Run Code Online (Sandbox Code Playgroud)

在上面的文件名构造中,是否会创建6个对象(每个变量一个)?

java string object stringbuffer

0
推荐指数
1
解决办法
63
查看次数

Java - StringBuilder 与字符串连接

问题很简单,怎样才能更好地避免非占用内存的使用呢?例如,假设我们有 aString s = "Test"并且我们想添加1它,使其变为Test1。我们都知道s获取一个内存位置,如果我们使用StringBuilderTest1将会得到一个新的内存地址,否则它将保留在s原来的位置,如果我们使用呢concat

java stringbuilder string-concatenation

-1
推荐指数
1
解决办法
7050
查看次数