Skip to content

Instantly share code, notes, and snippets.

View xrrocha's full-sized avatar

Ricardo Rocha xrrocha

View GitHub Profile
@xrrocha
xrrocha / README-0
Created December 16, 2020 17:26
code block for README-0
public class WordScrambler {
// 4+ letters, 2+ distinct inners
// \p{IsLatin} equals [a-zA-ZÀ-ÿ]
// Range [À-ÿ]: accented letters
private static final Pattern WORD_REGEX =
Pattern.compile("\\p{IsLatin}(\\p{IsLatin})\\1*(?!\\1)\\p{IsLatin}\\p{IsLatin}+");
// Scramble words within text
@xrrocha
xrrocha / README-1
Created December 16, 2020 17:26
code block for README-1
package wscrambler
import java.io.File
// 4+ Latin letters, 2+ distinct inners
private val WORD_REGEX =
"""\p{IsLatin}(\p{IsLatin})\1*(?!\1)\p{IsLatin}\p{IsLatin}+"""
.toRegex()
@xrrocha
xrrocha / README-2
Last active December 16, 2020 18:21
code block for README-2
val reader = File(filename).reader()
@xrrocha
xrrocha / README-3
Created December 16, 2020 17:26
code block for README-3
val reader: java.io.InputStreamReader =
/*new*/ java.io.File(filename).reader()
@xrrocha
xrrocha / README-4
Created December 16, 2020 17:26
code block for README-4
final var reader =
new InputStreamReader(
new FileInputStream(
new File(filename)));
@xrrocha
xrrocha / README-5
Created December 16, 2020 17:26
code block for README-5
// Collect readers from args/stdin
val readers =
if (args.isNotEmpty())
args.map { File(it).reader() }
else
listOf(System.`in`.reader())
// Swallow all readers into one string
val content =
@xrrocha
xrrocha / README-6
Created December 16, 2020 17:26
code block for README-6
// Collect readers from args/stdin
final Stream<BufferedReader> readers;
if (args.length > 0) {
readers = Arrays.stream(args)
.map(filename -> {
try {
return new BufferedReader(
new FileReader(filename));
} catch (Exception e) {
@xrrocha
xrrocha / README-7
Last active December 16, 2020 18:21
code block for README-7
import java.io.*;
import java.util.*;
import java.util.regex.*;
import java.util.stream.*;
@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()