String Functions in Logo

The standard library’s String class provides many useful string-related methods. Here are some examples to give you a sense of the available functionality.

import java.util.Arrays;

public class StringFunctions {

    // We create a shorter alias for System.out.println as we'll use it a lot below.
    private static void p(Object... args) {
        System.out.println(Arrays.toString(args));
    }

    public static void main(String[] args) {
        // Here's a sample of the methods available in the String class.
        // Since these are methods on the string object itself,
        // we call them directly on the string in question.
        // You can find more methods in the Java String API documentation.

        p("Contains:  ", "test".contains("es"));
        p("Count:     ", "test".chars().filter(ch -> ch == 't').count());
        p("HasPrefix: ", "test".startsWith("te"));
        p("HasSuffix: ", "test".endsWith("st"));
        p("Index:     ", "test".indexOf("e"));
        p("Join:      ", String.join("-", "a", "b"));
        p("Repeat:    ", "a".repeat(5));
        p("Replace:   ", "foo".replaceAll("o", "0"));
        p("Replace:   ", "foo".replaceFirst("o", "0"));
        p("Split:     ", Arrays.toString("a-b-c-d-e".split("-")));
        p("ToLower:   ", "TEST".toLowerCase());
        p("ToUpper:   ", "test".toUpperCase());
    }
}

When you run this program, you’ll get:

$ javac StringFunctions.java
$ java StringFunctions
[Contains:  , true]
[Count:     , 2]
[HasPrefix: , true]
[HasSuffix: , true]
[Index:     , 1]
[Join:      , a-b]
[Repeat:    , aaaaa]
[Replace:   , f00]
[Replace:   , f0o]
[Split:     , [a, b, c, d, e]]
[ToLower:   , test]
[ToUpper:   , TEST]

This example demonstrates various string manipulation methods available in Java. Unlike Go, where these functions are part of a separate strings package, in Java, most of these operations are methods on the String class itself. Some operations, like join, are static methods of the String class, while others like split return arrays that we need to convert to strings for printing.