Przejdź do treści stopki
POMOC DOTYCZąCA JęZYKA JAVA

Jak użyć Substring w Java

Witamy w przyjaznym dla początkujących przewodniku po korzystaniu z metody substring w Javie. Jako programista Java i nauczyciel, chcę pomóc Ci zrozumieć, jak efektywnie pracować z fragmentami ciągów znaków w Javie. Ciągi znaków, czyli sekwencje znaków, mają fundamentalne znaczenie dla programowania w języku Java. Metoda substring zachowuje się w specyficzny sposób podczas pracy z pustym ciągiem znaków. Jeśli oryginalny ciąg znaków jest pusty i nie podano żadnych indeksów, metoda zwraca pusty ciąg znaków. W tym przewodniku omówiono wszystko, co trzeba wiedzieć, aby rozpocząć pracę z podciągami w Javie, w tym praktyczne przykłady z wykorzystaniem biblioteki IronPDF for Java przeznaczonej do generowania i edycji plików PDF.

Czym jest ciąg znaków w Javie?

Zanim zagłębimy się w podciągi, należy zrozumieć, czym jest ciąg znaków w kontekście programowania w Javie. Ciąg znaków w Javie to obiekt reprezentujący sekwencję znaków. Klasa String w Javie udostępnia różne metody manipulowania sekwencjami znaków, takie jak łączenie dwóch ciągów znaków, porównywanie ciągów znaków lub, na czym się tutaj skupimy, wyodrębnianie podciągu.

Wyjaśnienie metody Substring

Metoda substring języka Java jest częścią klasy String w Javie. Służy do tworzenia nowego ciągu znaków na podstawie fragmentu istniejącego ciągu. Java oferuje dwa główne sposoby realizacji tego zadania:

  • public String substring(int beginIndex): Ta metoda tworzy nowy ciąg znaków, zaczynający się od beginIndex do końca oryginalnego ciągu znaków. Należy pamiętać, że indeks ciągów znaków w Javie zaczyna się od 0.
  • public String substring(int beginIndex, int endIndex): Ta wersja tworzy nowy ciąg znaków od beginIndex do endIndex, nie włączając endIndex.

Tworzenie nowych obiektów typu String za pomocą funkcji Substring

Podczas korzystania z metody substring język Java nie modyfikuje oryginalnego ciągu znaków. Zamiast tego tworzy nowy obiekt typu string, który zawiera znaki z określonego zakresu indeksów oryginalnego ciągu znaków.

Praktyczny przykład: Wyodrębnianie podciągów

Zastosujmy teorię w praktyce za pomocą prostego programu w języku Java:

public class SubstringDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world!";
        // Extracting substring from index 7 to the end
        String world = greeting.substring(7);
        System.out.println(world); // Outputs "world!"

        // Extracting substring from index 0 to 4 (exclusive)
        String hello = greeting.substring(0, 5);
        System.out.println(hello); // Outputs "Hello"
    }
}
public class SubstringDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world!";
        // Extracting substring from index 7 to the end
        String world = greeting.substring(7);
        System.out.println(world); // Outputs "world!"

        // Extracting substring from index 0 to 4 (exclusive)
        String hello = greeting.substring(0, 5);
        System.out.println(hello); // Outputs "Hello"
    }
}
JAVA

W tym przykładzie world będzie zawierać podciąg od indeksu 7 do końca, a hello będzie zawierać podciąg od indeksu 0 do 4. Pokazuje to, jak używać obu form metody substring do wyodrębniania różnych części ciągu znaków.

Metoda Java Substring (jak działa dla programistów): Rysunek 1 – Wynik wyświetlony w konsoli z poprzedniego kodu

Zaawansowana manipulacja ciągami znaków

Oprócz wyodrębniania prostych podciągów, metoda substring może być potężnym narzędziem w bardziej złożonych scenariuszach, takich jak porównywanie fragmentów ciągów znaków, sprawdzanie palindromów lub praca z ciągami znaków w różnych lokalizacjach.

Porównanie regionów ciągów znaków

Czasami może zaistnieć potrzeba porównania konkretnych fragmentów dwóch ciągów znaków, a nie całych ciągów. Metoda substring w Javie jest bardzo przydatna w takich sytuacjach. Oto jak można to zrobić:

public class CompareRegionsDemo {
    public static void main(String[] args) {
        String str1 = "Hello, world!";
        String str2 = "Hello, Java!";

        // Extracting substrings to compare
        String subStr1 = str1.substring(7);
        String subStr2 = str2.substring(7);

        // Comparing extracted substrings
        if (subStr1.equals(subStr2)) {
            System.out.println("The substrings match.");
        } else {
            System.out.println("The substrings do not match.");
        }
    }
}
public class CompareRegionsDemo {
    public static void main(String[] args) {
        String str1 = "Hello, world!";
        String str2 = "Hello, Java!";

        // Extracting substrings to compare
        String subStr1 = str1.substring(7);
        String subStr2 = str2.substring(7);

        // Comparing extracted substrings
        if (subStr1.equals(subStr2)) {
            System.out.println("The substrings match.");
        } else {
            System.out.println("The substrings do not match.");
        }
    }
}
JAVA

Ten program wyodrębnia podciągi z dwóch różnych ciągów znaków i porównuje je. Pokazuje to, jak można skupić się na konkretnych fragmentach ciągów znaków, które Cię interesują, zamiast porównywać całe ciągi.

Metoda Java Substring (jak działa dla programistów): Rysunek 2 – Wynik wyświetlony w konsoli po uruchomieniu poprzedniego kodu

Lokalizacja z wykorzystaniem podciągów

W przypadku internacjonalizacji może zaistnieć potrzeba odmiennego przedstawiania lub przetwarzania ciągów znaków w zależności od ustawień regionalnych użytkownika. Oto prosty przykład formatowania ciągu znaków przy użyciu funkcji substring w oparciu o predefiniowany format.

public class LocalizationDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world! Bonjour, monde! Hola, mundo!";

        // Assuming we know the positions of each localized greeting
        String englishGreeting = greeting.substring(0, 13);
        String frenchGreeting = greeting.substring(15, 28);
        String spanishGreeting = greeting.substring(30);

        System.out.println(englishGreeting); // Outputs "Hello, world!"
        System.out.println(frenchGreeting);  // Outputs "Bonjour, monde!"
        System.out.println(spanishGreeting);  // Outputs "Hola, mundo!"
    }
}
public class LocalizationDemo {
    public static void main(String[] args) {
        String greeting = "Hello, world! Bonjour, monde! Hola, mundo!";

        // Assuming we know the positions of each localized greeting
        String englishGreeting = greeting.substring(0, 13);
        String frenchGreeting = greeting.substring(15, 28);
        String spanishGreeting = greeting.substring(30);

        System.out.println(englishGreeting); // Outputs "Hello, world!"
        System.out.println(frenchGreeting);  // Outputs "Bonjour, monde!"
        System.out.println(spanishGreeting);  // Outputs "Hola, mundo!"
    }
}
JAVA

Ten przykład pokazuje wyodrębnianie określonych pozdrowień na podstawie z góry zdefiniowanego formatu i może zostać dostosowany do wyboru pozdrowienia na podstawie lokalizacji określonej przez użytkownika.

Metoda Java Substring (jak działa dla programistów): Rysunek 3 – Wynik wyświetlony w konsoli z poprzedniego przykładu kodu

Sprawdzanie palindromów

Palindrom to sekwencja znaków, taka jak słowo, fraza lub liczba, która brzmi tak samo od początku do końca i od końca do początku, bez uwzględniania spacji, znaków interpunkcyjnych i wielkich liter. Oto jak można użyć metody substring, aby sprawdzić, czy dany ciąg znaków jest palindromem:

public class PalindromeCheck {
    public static void main(String[] args) {
        String line = "A man a plan a canal Panama";
        System.out.println("Is palindrome? " + checkPalindrome(line));
    }

    private static boolean checkPalindrome(String str) {
        // Removing all non-letter characters and converting to lowercase
        str = str.replaceAll("[^a-zA-Z]", "").toLowerCase();
        int length = str.length();

        // Checking if characters at each index are equal to their counterparts
        for (int i = 0; i < length / 2; i++) {
            if (str.charAt(i) != str.charAt(length - 1 - i)) {
                return false;
            }
        }
        return true;
    }
}
public class PalindromeCheck {
    public static void main(String[] args) {
        String line = "A man a plan a canal Panama";
        System.out.println("Is palindrome? " + checkPalindrome(line));
    }

    private static boolean checkPalindrome(String str) {
        // Removing all non-letter characters and converting to lowercase
        str = str.replaceAll("[^a-zA-Z]", "").toLowerCase();
        int length = str.length();

        // Checking if characters at each index are equal to their counterparts
        for (int i = 0; i < length / 2; i++) {
            if (str.charAt(i) != str.charAt(length - 1 - i)) {
                return false;
            }
        }
        return true;
    }
}
JAVA

Ten kod oczyszcza ciąg wejściowy, usuwając znaki inne niż litery i zamieniając go na małe litery. Następnie sprawdza, czy znak w każdej pozycji od początku pasuje do odpowiedniego znaku od końca.

Metoda Java Substring (jak działa dla programistów): Rysunek 4 – Wynik wyświetlony w konsoli z poprzedniego kodu

Wprowadzenie do IronPDF for Java

Metoda Java Substring (jak działa dla programistów): Rysunek 5 – Strona internetowa IronPDF for Java

Odkryj funkcje IronPDF Java — potężną bibliotekę zaprojektowaną w celu uproszczenia procesu tworzenia, edycji i zarządzania dokumentami PDF w aplikacjach Java. Biblioteka ta oferuje programistom szeroki zestaw funkcji do manipulowania plikami PDF, w tym generowanie dokumentów PDF z HTML, obsługę formularzy, dodawanie obrazów i tekstu, a także zabezpieczanie dokumentów za pomocą szyfrowania i uprawnień. Prosty interfejs API i obszerna dokumentacja sprawiają, że zarówno początkujący, jak i doświadczeni programiści mogą z łatwością zintegrować funkcje obsługi plików PDF ze swoimi projektami Java.

Tworzenie dokumentu PDF

Stwórzmy prosty przykład ilustrujący wykorzystanie IronPDF for Java w połączeniu z koncepcją podciągu w Javie. W tym przykładzie wygenerujemy dokument PDF na podstawie ciągu znaków HTML. Następnie dodamy element tekstowy do pliku PDF, wykorzystując podciąg większego ciągu znaków, aby zilustrować integrację funkcji podciągów języka Java.

Dodawanie IronPDF for Java do projektu

Należy dodać IronPDF for Java do pliku pom.xml. Należy dodać zależność od IronPDF for Java oraz Slf4j. Oto jak można to bardzo łatwo zrobić.

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2024.1.1</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</version>
</dependency>
<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2024.1.1</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</version>
</dependency>
XML

Można jednak ręcznie pobrać IronPDF for Java z repozytorium Sonatype.

Generowanie pliku PDF przy użyciu metody Substring

Teraz nadszedł czas, aby napisać kod w pliku App.java. Utwórzmy prosty dokument PDF i dodajmy do niego tekst, pokazując, jak zintegrować metody podciągu w tym procesie:

import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
import java.awt.print.PrinterException;

public class App {
    public static void main(String[] args) throws IOException {
        License.setLicenseKey("License Key");

        // Example longer string to demonstrate substring usage
        String longString = "IronPDF for Java simplifies PDF generation from HTML content.";
        // Extracting a substring
        String substring = longString.substring(0, 25); // "IronPDF for Java simplifies"

        // Crafting HTML content with the substring
        String htmlContent = "<h1>" + substring + "</h1>" +
                "<p>This PDF document demonstrates generating a PDF from HTML content, including dynamic text from Java strings.</p>";

        // Render HTML as a PDF document
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);
        pdf.saveAs(Paths.get("f:\\IronPdf\\html.pdf"));
    }
}
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
import java.awt.print.PrinterException;

public class App {
    public static void main(String[] args) throws IOException {
        License.setLicenseKey("License Key");

        // Example longer string to demonstrate substring usage
        String longString = "IronPDF for Java simplifies PDF generation from HTML content.";
        // Extracting a substring
        String substring = longString.substring(0, 25); // "IronPDF for Java simplifies"

        // Crafting HTML content with the substring
        String htmlContent = "<h1>" + substring + "</h1>" +
                "<p>This PDF document demonstrates generating a PDF from HTML content, including dynamic text from Java strings.</p>";

        // Render HTML as a PDF document
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);
        pdf.saveAs(Paths.get("f:\\IronPdf\\html.pdf"));
    }
}
JAVA

Po wyodrębnieniu podciągu z dłuższego ciągu znaków można go płynnie włączyć do dokumentu PDF, zapewniając spójną reprezentację ciągu znaków w wygenerowanej treści PDF. Ten fragment kodu pokazuje podstawy tworzenia dokumentu PDF za pomocą IronPDF for Java, w tym generowanie treści z HTML oraz wykorzystanie funkcji podciągu w Javie do manipulowania i dodawania tekstu do pliku PDF. Po uruchomieniu tego kodu w określonym katalogu pojawi się plik PDF o nazwie "html.pdf".

Wynik

Oto plik PDF wygenerowany przez powyższy kod:

Metoda Java Substring (jak działa dla programistów): Rysunek 6 – Plik PDF wygenerowany na podstawie poprzedniego kodu

Jest to dokładnie to, co zdefiniowaliśmy w naszym kodzie. Dodaliśmy treść do pliku PDF przy użyciu metody Substring języka Java. To piękne połączenie IronPDF i metody Substring. Dzięki tej kombinacji można osiągnąć wiele.

Wnioski

Dzięki połączeniu tych funkcji Java IronPDF z potężnymi możliwościami manipulacji ciągami znaków w Javie, takimi jak metoda substring, można tworzyć zaawansowane aplikacje do przetwarzania plików PDF. Niniejszy przewodnik dostarczył podstawowej wiedzy na temat pracy z plikami PDF w Javie i pokazał, jak włączyć operacje na podciągach do projektów związanych z plikami PDF. Wypróbuj te przykłady i zgłębiaj temat, aby w pełni wykorzystać możliwości manipulacji plikami PDF w Javie.

IronPDF for Java oferuje bezpłatną wersję próbną, dzięki której programiści mogą zapoznać się z jego możliwościami. Ceny licencji na IronPDF zaczynają się od $799, zapewniając kompleksowe rozwiązania do generowania plików PDF dla projektów Java.

Darrius Serrant
Full Stack Software Engineer (WebOps)

Darrius Serrant posiada tytuł licencjata z informatyki z Uniwersytetu Miami i pracuje jako Full Stack WebOps Marketing Engineer w Iron Software. Już od młodych lat zainteresował się kodowaniem, postrzegając informatykę jako zarówno tajemniczą, jak i dostępną, co czyni ją doskonałym medium dla kreatywności ...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie