Skip to main content

Use String.strip() instead of using String.trim

Medium
Java

String.trim() only removes whitespace (space, tab, etc.) defined by the ASCII character set. String.strip() removes all kinds of whitespace including Unicode

Examples

Example 1:

Positive

Correct implementation following the practice.

package org.example;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public final class Util {

public static Map<String, Integer> nameCount(List<String> names) {
return names.stream()
.collect(Collectors.toMap(name -> name, name -> 1, Integer::sum));

}

public static void printNames(List<String> names) {
names.forEach(System.out::println);
}

public static Integer sum(List<Integer> numbers) {
return numbers.stream()
.reduce(0, Integer::sum);
}

public static int increment(int value) {
return value + 1;
}

public static void readFile(String fileName) throws FileNotFoundException {
try (InputStream input = new FileInputStream(fileName)) {
// Read file
} catch (IOException e) {
e.printStackTrace();
}
}

public static String removeWhiteSpace(String str) {
return str.strip();
}
}

Negative

Incorrect implementation that violates the practice.

package org.example;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public final class Util {

public static Map<String, Integer> nameCount(List<String> names) {
return names.stream()
.collect(Collectors.toMap(name -> name, name -> 1, Integer::sum));

}

public static void printNames(List<String> names) {
names.forEach(System.out::println);
}

public static Integer sum(List<Integer> numbers) {
return numbers.stream()
.reduce(0, Integer::sum);
}

public static int increment(int value) {
return value + 1;
}

public static void readFile(String fileName) throws FileNotFoundException {
try (InputStream input = new FileInputStream(fileName)) {
// Read file
} catch (IOException e) {
e.printStackTrace();
}
}

public static String removeWhiteSpace(String str) {
return str.trim();
}
}