相关疑难解决方法(0)

String.equals与==

此代码将字符串分隔为标记并将它们存储在字符串数组中,然后将变量与第一个主页进行比较...为什么它不起作用?

public static void main(String...aArguments) throws IOException {

    String usuario = "Jorman";
    String password = "14988611";

    String strDatos = "Jorman 14988611";
    StringTokenizer tokens = new StringTokenizer(strDatos, " ");
    int nDatos = tokens.countTokens();
    String[] datos = new String[nDatos];
    int i = 0;

    while (tokens.hasMoreTokens()) {
        String str = tokens.nextToken();
        datos[i] = str;
        i++;
    }

    //System.out.println (usuario);

    if ((datos[0] == usuario)) {
        System.out.println("WORKING");
    }
}
Run Code Online (Sandbox Code Playgroud)

java string

515
推荐指数
16
解决办法
80万
查看次数

如何在Java 9中实现String连接?

正如JEP 280中所写:

更改String生成的static -concatenation字节码序列,javac以使用invokedynamic对JDK库函数的调用.这将使未来的String串联优化成为可能,而无需进一步更改所设置的字节码javac.

在这里,我想了解invokedynamic调用的用途以及字节码串联的不同之处是invokedynamic什么?

java string string-concatenation invokedynamic java-9

108
推荐指数
3
解决办法
8315
查看次数

"=="用于Java中的字符串连接

    String a = "devender";
    String b = "devender";
    String c = "dev";
    String d = "dev" + "ender";
    String e = c + "ender";

    System.out.println(a == b);     //case 1: o/p true

    System.out.println(a == d);     //case 2: o/p true

    System.out.println(a == e);     //case 3: o/p false
Run Code Online (Sandbox Code Playgroud)

ab都指向字符串常量池中的相同字符串文字.所以true在案例1中

String d = "dev" + "ender";
Run Code Online (Sandbox Code Playgroud)

应该在内部使用像 -

String d = new StringBuilder().append("dev").append("ender").toString();
Run Code Online (Sandbox Code Playgroud)

如何一个&d都指向相同的参考及不能&ê

java string

51
推荐指数
6
解决办法
2017
查看次数

使用+运算符concat时创建的新String对象在哪里

我知道这可能很基本,也可能很直接,但我无法清楚地理解在这种情况下会发生什么,所以,就这样吧。

在以下代码中:

String str1 = "Hello";
String str2 = "World";
String str3 = new String("HelloWorld");
String str4 = str1 + str2;
Run Code Online (Sandbox Code Playgroud)

我知道 str1 和 str2 将在String Constant Pool分别创建一个对象“Hello”和“World” 。对于 str3,在String Constant Pool外部创建了一个新对象,该对象指向String Constant Pool内部创建的“HelloWorld” 。

我的问题是,如果我连接 2 个或更多字符串(使用 '+' 或 concat() 方法)会发生什么?

是否会像String str3一样在池创建一个新对象,或者 str4 将直接指向String Constant Pool的对象“HelloWorld”

PS:如果它是在池创建新对象的情况,那么不使用new关键字如何发生?

java string string-concatenation

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

当两个以上的字符串用+连接时,将在字符串池中创建多少个对象

我正在尝试使用'+'运算符连接三个字符串

String s = "a"+"b"+"c";
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我在字符串常量池中将创建多少个对象。同样,如果有更多的字符串,则字符串常量池中将有多少个对象。例如:

String s1 = "a"+"b"+"c"+"d"+"e"+"f"+"g"..........100 objets
Run Code Online (Sandbox Code Playgroud)

java string

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