# Java 程序：比较字符串

> 原文： [https://www.programiz.com/java-programming/examples/compare-strings](https://www.programiz.com/java-programming/examples/compare-strings)

#### 在此程序中，您将学习比较 Java 中的两个字符串。

## 示例 1：比较两个字符串

```java
public class CompareStrings {

    public static void main(String[] args) {

        String style = "Bold";
        String style2 = "Bold";

        if(style == style2)
            System.out.println("Equal");
        else
            System.out.println("Not Equal");
    }
}
```

运行该程序时，输出为：

```java
Equal
```

在上面的程序中，我们有两个字符串`style`和`style2`。 我们仅使用相等运算符（`==`）比较两个字符串，这会将值`Bold`与`Bold`进行比较，并输出`Equal`。

* * *

## 示例 2：使用`equals()`比较两个字符串

```java
public class CompareStrings {

    public static void main(String[] args) {

        String style = new String("Bold");
        String style2 = new String("Bold");

        if(style.equals(style2))
            System.out.println("Equal");
        else
            System.out.println("Not Equal");
    }
}
```

运行该程序时，输出为：

```java
Equal
```

在上面的程序中，我们有两个字符串`style`和`style2`都包含相同的全局`Bold`。

但是，我们使用了`String`构造器来创建字符串。 要在 Java 中比较这些字符串，我们需要使用字符串的`equals()`方法。

您不应该使用`==`（相等运算符）来比较这些字符串，因为它们会比较字符串的引用，即它们是否是同一对象。

另一方面，`equals()`方法比较字符串的值是否相等，而不是对象本身。

如果改为将程序更改为使用等号运算符，则会显示`Not Equal`，如下所示。

* * *

## 示例 3：使用`==`比较两个字符串对象（不起作用）

```java
public class CompareStrings {

    public static void main(String[] args) {

        String style = new String("Bold");
        String style2 = new String("Bold");

        if(style == style2)
            System.out.println("Equal");
        else
            System.out.println("Not Equal");
    }
}
```

运行该程序时，输出为：

```java
Not Equal
```

* * *

## 示例 4：比较两个字符串的不同方法

这是在 Java 中可能进行的字符串比较。

```java
public class CompareStrings {

    public static void main(String[] args) {

        String style = new String("Bold");
        String style2 = new String("Bold");

        boolean result = style.equals("Bold"); // true
        System.out.println(result);

        result = style2 == "Bold"; // false
        System.out.println(result);

        result = style == style2; // false
        System.out.println(result);

        result = "Bold" == "Bold"; // true
        System.out.println(result);
    }
}
```

运行该程序时，输出为：

```java
true
false
false
true
```