java-exercism-exercises/squeaky-clean/README.md

84 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2023-03-08 19:00:28 +01:00
# Squeaky Clean
Welcome to Squeaky Clean on Exercism's Java Track.
If you need help running the tests or submitting your code, check out `HELP.md`.
If you get stuck on the exercise, check out `HINTS.md`, but try and solve it without using those first :)
## Introduction
The Java `char` type represents the smallest addressable components of text.
Multiple `char`s can comprise a string such as `"word"` or `char`s can be
processed independently. Their literals have single quotes e.g. `'A'`.
Java `char`s support Unicode encoding so in addition to the Latin character set
pretty much all the writing systems in use worldwide can be represented,
e.g. the Greek letter `'β'`.
There are many builtin library methods to inspect and manipulate `char`s. These
can be found as static methods of the `java.lang.Character` class.
`char`s are sometimes used in conjunction with a `StringBuilder` object.
This object has methods that allow a string to be constructed
character by character and manipulated. At the end of the process
`toString` can be called on it to output a complete string.
## Instructions
In this exercise you will implement a partial set of utility routines to help a developer
clean up SqueakyClean names.
In the 4 tasks you will gradually build up the `clean` method.
A valid SqueakyClean name is comprised of zero or more letters and underscores.
In all cases the input string is guaranteed to be non-null. Note that the `clean` method should treat an empty string as valid.
## 1. Replace any spaces encountered with underscores
Implement the (_static_) `SqueakyClean.clean()` method to replace any spaces with underscores. This also applies to leading and trailing spaces.
```java
SqueakyClean.clean("my Id");
// => "my___Id"
```
## 2. Replace control characters with the upper case string "CTRL"
Modify the (_static_) `SqueakyClean.clean()` method to replace control characters with the upper case string `"CTRL"`.
```java
SqueakyClean.clean("my\0Id");
// => "myCTRLId",
```
## 3. Convert kebab-case to camelCase
Modify the (_static_) `SqueakyClean.clean()` method to convert kebab-case to camelCase.
```java
SqueakyClean.clean("à-ḃç");
// => "àḂç"
```
## 4. Omit characters that are not letters
Modify the (_static_) `SqueakyClean.clean()` method to omit any characters that are not letters.
```java
SqueakyClean.clean("a1😀2😀3😀b");
// => "ab"
```
## 5. Omit Greek lower case letters
Modify the (_static_) `SqueakyClean.clean()` method to omit any Greek letters in the range 'α' to 'ω'.
```java
SqueakyClean.clean("MyΟβιεγτFinder");
// => "MyΟFinder"
```
## Source
### Created by
- @ystromm