/****************************************************************************** * This program demonstrates how to use the character typing functions. * * Copyright © 2020 Richard Lesh. All rights reserved. *****************************************************************************/ import org.pureprogrammer.Utils; public class CharacterTypes { public static void main(String[] args) { String s = "Hello, world!\nΓειά σου Κόσμε!\n3.14159\t\u0001\u0002\t🤯🦊🦄🇺🇸🇬🇧"; for (String cp : new Utils.StringCodepointsIterable(s)) { final String c = String.valueOf(Character.toChars(cp)); boolean addSpace = false; if (Character.isISOControl(c.codePointAt(0)) || Character.isWhitespace(c.codePointAt(0))) { System.out.print(Utils.join("", "Processing: 0x", Utils.toBase(c.codePointAt(0), 16), " ")); } else { System.out.print(Utils.join("", "Processing: ", c, " ")); } if (Character.isLetter(c.codePointAt(0))) { System.out.print(Utils.join("", "isalpha ", c.toUpperCase(), c.toLowerCase())); addSpace = true; } if (Character.isLetterOrDigit(c.codePointAt(0))) { if (addSpace == true) { System.out.print(" "); } System.out.print("isalnum"); addSpace = true; } if (Character.isDigit(c.codePointAt(0))) { if (addSpace == true) { System.out.print(" "); } System.out.print("isdigit"); addSpace = true; } if (Character.isWhitespace(c.codePointAt(0))) { if (addSpace == true) { System.out.print(" "); } System.out.print("isspace"); addSpace = true; } if ((!Character.isLetterOrDigit(c.codePointAt(0)) && !Character.isWhitespace(c.codePointAt(0)) && !Character.isISOControl(c.codePointAt(0)))) { if (addSpace == true) { System.out.print(" "); } System.out.print("ispunct"); addSpace = true; } if (Character.isISOControl(c.codePointAt(0))) { if (addSpace == true) { System.out.print(" "); } System.out.print("isctrl"); addSpace = true; } System.out.println(); } } }