Skip to content

Instantly share code, notes, and snippets.

View xrrocha's full-sized avatar

Ricardo Rocha xrrocha

View GitHub Profile
@xrrocha
xrrocha / README-24
Created December 16, 2020 17:26
code block for README-24
// Scramble from files/stdin to stdout
fun main(args: Array<String>) {
// Collect readers from args/stdin
val readers =
if (args.isNotEmpty())
args.map { File(it).reader() }
else
// in: quoted because reserved
@xrrocha
xrrocha / README-25
Created December 16, 2020 17:26
code block for README-25
wscrambler.scrambleWords("Hey there!")
@xrrocha
xrrocha / README-26
Created December 16, 2020 17:26
code block for README-26
package wscrambler
object WordScrambler {
// Regex compiled only once:
// at object initialization.
// Inaccessible to others,
// even in the same package.
private val WORD_REGEX =
"""\p{IsLatin}(\p{IsLatin})\1*(?!\1)\p{IsLatin}\p{IsLatin}+"""
@xrrocha
xrrocha / README-27
Created December 16, 2020 17:26
code block for README-27
// Nullable constructor arg w/default
class Numberer(pattern: String? = null) {
companion object {
// Public constant
const val DEF_PATTERN = "000,000"
}
// Private field w/fallback value (?:)
@xrrocha
xrrocha / README-28
Created December 16, 2020 17:26
code block for README-28
package wscrambler
object WordScrambler {
private val WORD_REGEX =
"""\p{IsLatin}(\p{IsLatin})\1*(?!\1)\p{IsLatin}\p{IsLatin}+""".toRegex()
@JvmStatic // JVM static method
// CLI FQN: wscrambler.Scrambler
fun main(args: Array<String>) {
@xrrocha
xrrocha / README-8
Last active December 16, 2020 18:07
code block for README-8
final var wordRegex =
Pattern.compile("\\p{InLatin}{4,}")
@xrrocha
xrrocha / README-9
Last active December 16, 2020 18:08
code block for README-9
val wordRegex =
"""\p{InLatin}{4,}""".toRegex()
@xrrocha
xrrocha / README-10
Last active December 16, 2020 18:08
code block for README-10
fun String.toRegex(): Regex {
return Regex(Pattern.compile(this))
}
@xrrocha
xrrocha / README-11
Last active December 16, 2020 18:09
code block for README-11
fun String.toRegex() =
Regex(Pattern.compile(this))
@xrrocha
xrrocha / README-12
Last active December 16, 2020 18:10
code block for README-12
// Two backslashes
"""\\p{InLatin}{4,}"""