# स्ट्रिंग — कोर जावा

Source: https://www.geekswithgeeks.com/hi/core-java/java-strings

> देखें Java स्ट्रिंग अपरिवर्तनीय क्यों हैं, तुलना == के बजाय equals() से क्यों, और StringBuilder लूप में O(n²) जोड़ने से कैसे बचाता है।

## स्ट्रिंग अपरिवर्तनीय हैं

`String` को "बदलने" वाला हर मेथड नया ऑब्जेक्ट लौटाता है; मूल अछूता रहता है। लूप में यह महँगा है।

## equals() से तुलना

`==` एक ही ऑब्जेक्ट की जाँच करता है। सामग्री की तुलना के लिए `.equals()` उपयोग करें।

```java
String a = "hi";
String b = new String("hi");
System.out.println(a == b);        // false
System.out.println(a.equals(b));   // true
```

## लूप के लिए StringBuilder

लूप में `+` से जोड़ना O(n²) है। `StringBuilder` उपयोग करें और अंत में एक बार `toString()`।

```java
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 5; i++) sb.append(i).append(',');
String csv = sb.toString();   // "0,1,2,3,4,"
```
