src/Pure/General/word.scala
author wenzelm
Wed, 16 Apr 2014 09:38:40 +0200
changeset 56599 c4424d8c890f
child 56600 628e039cc34d
permissions -rw-r--r--
tuned signature -- separate module Word;

/*  Title:      Pure/General/word.scala
    Module:     PIDE
    Author:     Makarius

Support for plain text words.
*/

package isabelle


import java.util.Locale


object Word
{
  def lowercase(str: String): String = str.toLowerCase(Locale.ROOT)
  def uppercase(str: String): String = str.toUpperCase(Locale.ROOT)

  def capitalize(str: String): String =
    if (str.length == 0) str
    else uppercase(str.substring(0, 1)) + str.substring(1)

  def is_capitalized(str: String): Boolean =
    str.length > 0 &&
    Character.isUpperCase(str(0)) && str.substring(1).forall(Character.isLowerCase(_))

  def is_all_caps(str: String): Boolean =
    str.length > 0 && str.forall(Character.isUpperCase(_))

  def plain_words(str: String): String =
    space_explode('_', str).mkString(" ")
}