// String.java -- examples of some of the methods of java.lang.String
// Java API
// https://docs.oracle.com/en/java/javase/25/docs/api/index.html
// Java API > "module" base
// https://docs.oracle.com/en/java/javase/25/docs/api/java.base/module-summary.html
// Java API > base > package java.lang
// https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/package-summary.html
// Java API > base > class java.lang.String
// https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/String.html
// Java 25. implicit class / compact main
// Java 25. formatting is cleanly separated from I/O
// Java 25. string templates/interperlation removed since Java 23
void main () {
final String str1 = "abc";
final String str2 = new String();
final String str3 = new String (str1);
final String str4 = str1;
final char data[] = {'a', 'b', 'c'};
final String str5 = new String (data);
final String str6 = str1.concat (str3);
final String str7 = str1 + str3;
final String str8;
IO.println ("str1 = %s%n".formatted(str1)); // "abc"
IO.println ("str2 = %s%n".formatted(str2)); // ""
IO.println ("str3 = %s%n".formatted(str3)); // "abc"
IO.println ("str4 = %s%n".formatted(str4)); // "abc"
IO.println ("str5 = %s%n".formatted(str5)); // "abc"
IO.println ("str6 = %s%n".formatted(str6)); // "abcabc"
IO.println ("str7 = %s%n".formatted(str7)); // "abcabc"
IO.println ("Length of str1 = %d%n".formatted(str1.length())); // 3
IO.println ("Length of str2 = %d%n".formatted(str2.length())); // 0
IO.println ("Length of str6 = %d%n".formatted(str6.length())); // 6
if (str1 == str4) {
IO.println ("str1 and str4 refer to the same object.");
}
if (str1 != str3) {
IO.println ("str1 and str3 do not refer to the same object.");
}
if (str1.equals(str5)) {
IO.println ("str1 and str3 contain the same characters.");
}
final int r1 = str1.compareTo ("abc and more");// negative (str1 shorter)
final int r2 = str1.compareTo ("azc"); // negative ('b' < 'z')
final int r3 = str1.compareTo ("abc"); // zero means equal
final int r4 = str1.compareTo ("aac"); // positive ('b' > 'a')
final int r5 = str1.compareTo ("ab"); // positive (str1 longer)
final boolean r6 = str1.equalsIgnoreCase ("AbC"); // true
final boolean r7 = str7.endsWith ("bc"); // true
final boolean r8 = str7.startsWith ("ab"); // true
final String str9="\t \rThis is the string inside.\n \r";
IO.println ("Trim '%s'%n".formatted(str9.trim()));
IO.println ("Strip '%s'%n".formatted(str9.strip()));
// System.out.println (STR."A string in upper case: \{str7.toUpperCase()}")
IO.println ("A string in upper case: " + str7.toUpperCase());
IO.println ("A string in upper case: ".concat(str7.toUpperCase()));
IO.println (String.format("A string in upper case: %s", str7.toUpperCase()));
IO.println ("A string in upper case: %s".formatted(str7.toUpperCase()));
IO.println ("A string in lower case: %s".formatted("ABCAbC".toLowerCase()));
}