Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีที่ง่ายที่สุดในการย้อนกลับสตริงใน Java

การกลับสตริงเป็นหนึ่งในคำถามที่พบบ่อยที่สุดในการสัมภาษณ์ด้านเทคนิคของ Java ผู้สัมภาษณ์อาจขอให้คุณเขียนวิธีต่างๆ ในการย้อนกลับสตริง หรืออาจขอให้คุณย้อนกลับสตริงโดยไม่ต้องใช้วิธีการที่สร้างขึ้น หรืออาจขอให้คุณย้อนกลับสตริงโดยใช้การเรียกซ้ำ

ด้านล่างนี้คือวิธีการต่างๆ ที่คุณสามารถใช้เพื่อย้อนกลับสตริงใน Java

สตริงย้อนกลับใน Java วิธีที่ง่ายที่สุด

วิธีที่ง่ายที่สุดในการย้อนกลับสตริงใน Java คือการใช้ reverse() . ในตัว ฟังก์ชันของ StringBuilder ชั้นเรียน

ตัวอย่าง:

package io.devqa.tutorials;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {
        return new StringBuilder(inputString).reverse().toString();
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

ที่เกี่ยวข้อง:

  • เหตุใดจึงแทนที่ toString() ใน Java
  • วิธีเปรียบเทียบสตริงใน Java
  • วิธีดึงตัวเลขออกจากสตริง
  • วิธีการแปลงสตริงเป็น Int ใน Java

สตริงย้อนกลับโดยใช้การเรียกซ้ำ

อีกวิธีหนึ่งในการย้อนกลับสตริงในจาวาคือการใช้การเรียกซ้ำและใช้ charAt() วิธีการของ String คลาส

ตัวอย่าง:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {

        StringBuilder reverseStringBuilder = new StringBuilder();

        for(int i = inputString.length() - 1; i>=0; i--){
            reverseStringBuilder.append(inputString.charAt(i));
        }

        return reverseStringBuilder.toString();
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

รูปแบบข้างต้นคือการใช้ toCharArray() และวนซ้ำอักขระ เช่น:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {
        String outString = "";
        for(char c : inputString.toCharArray()) {
            outString = c + outString;
        }
        return outString;
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

สตริงย้อนกลับใน Java 8

import org.junit.jupiter.api.Test;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {
        return IntStream.range(0, inputString.length())
            .mapToObj(x-> inputString.charAt((inputString.length()-1) - x))
            .map(character -> String.valueOf(character))
            .collect(Collectors.joining(""));
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}