相关疑难解决方法(0)

如何比较Java中的字符串?

==到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals(),并修复了该错误.

==坏?什么时候应该不应该使用它?有什么不同?

java string equality

726
推荐指数
23
解决办法
376万
查看次数

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比较是假的?

字符串部分是String [6]:

["231", "CA-California", "Sacramento-155328", "aleee", "Customer Service Clerk", "Alegra Keith.doc.txt"]

但是当我比较parts[0]"231":

"231" == parts[0]
Run Code Online (Sandbox Code Playgroud)

以上结果是假的,

我很困惑,所以有人能告诉我为什么吗?

java string equals

44
推荐指数
6
解决办法
8万
查看次数

如果带有String比较的语句失败

我真的不知道为什么下面的if语句没有执行:

if (s == "/quit")
{
    System.out.println("quitted");
}
Run Code Online (Sandbox Code Playgroud)

以下是全班.

这可能是一个非常愚蠢的逻辑问题,但我一直在把头发拉到这里,但是无法解决这个问题.

谢谢你看:)

class TextParser extends Thread {
    public void run() {
        while (true) {
            for(int i = 0; i < connectionList.size(); i++) {
                try {               
                    System.out.println("reading " + i);
                    Connection c = connectionList.elementAt(i); 
                    Thread.sleep(200);

                    System.out.println("reading " + i);

                    String s = "";

                    if (c.in.ready() == true) {
                        s = c.in.readLine();
                        //System.out.println(i + "> "+ s);

                        if (s == "/quit") {
                            System.out.println("quitted");
                        }

                        if(! s.equals("")) {
                            for(int j = 0; j < …
Run Code Online (Sandbox Code Playgroud)

java multithreading if-statement string-comparison

42
推荐指数
6
解决办法
37万
查看次数

String.equals()参数排序

我最近在最近的回答中收到了使用以下内容的downvote :

String word = ...;
if ("s".equals(word) || "y".equals(word)
Run Code Online (Sandbox Code Playgroud)

由于使用"yoda条件"而给出了downvote.我要求进一步解释,但没有提供.我更喜欢这种风格以避免可能NullPointerException.

这是一种糟糕的编码风格吗?如果是这样,为什么?

java

25
推荐指数
3
解决办法
5068
查看次数

Java等于()排序

如果我尝试.equals()在java中对空字符串执行操作,则会抛出空指针异常.我想知道,如果我想比较一个字符串是否等于某个常量字符串,我可以执行以下操作:

MY_CONSTANT_STRING.equals(aStringVariable)
Run Code Online (Sandbox Code Playgroud)

我知道它会起作用,但这只是非常糟糕的代码吗?

java string

8
推荐指数
3
解决办法
2204
查看次数

字符串中的"空变量检查"

一般来说,两者之间是否存在差异

if("x".equalsIgnoreCase(myStrVar))
Run Code Online (Sandbox Code Playgroud)

if(myStrVar.equalsIgnoreCase("x"))
Run Code Online (Sandbox Code Playgroud)

因为第一个不会导致空指针异常,但第二个将在两个方案中都myStrVar为空?

java string

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

我的if语句不起作用

我正在写一个服务应用程序Android.在这个应用程序中,我正在使用onStartCommand事件从Main活动接收命令.该IF块正在检查变量.正如您在图片中看到的那样(调试模式),值为"start"但该IF语句不起作用并将重定向到Else.为什么?

在此输入图像描述

service android if-statement

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

字符串看起来一样,但测试表明它们是不同的

我有一些有效的代码如下:

String a;
String b;
a = get_string_from_complex_procedure_1();
b = get_string_from_complex_procedure_2();
if (a != b)
{
    put_up_error_dialog("["+a+"] != ["+b+"]");
}
Run Code Online (Sandbox Code Playgroud)

代码的设计使得a和b 最终应该完全相同,实际上它们大部分时间都是相同的,但偶尔会出现错误对话框.令人困惑的是,当对话框报告时,两个字符串看起来与我相同.我想知道什么样的事情会导致这个问题?

java string

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