Input & Controls
5x
Ready
Select operation to begin
Visual Process
Original String List
Encoded String
Decoded String List
Character Analysis
a Normal characters
※ Separator (ASCII 257)
∅ Empty list marker (ASCII 258)
Java Implementation
public class Codec {
// Encodes a list of strings to a single string.
public String encode(List<String> strs) {
// Handle empty list case
if (strs.size() == 0) {
return Character.toString((char)258);
}
// Use ASCII 257 as separator (non-printable character)
String separator = Character.toString((char)257);
StringBuilder sb = new StringBuilder();
// Append each string with separator
for (String s : strs) {
sb.append(s);
sb.append(separator);
}
// Remove last separator
sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
// Decodes a single string to a list of strings.
public List<String> decode(String s) {
// Handle empty list case
if (s.equals(Character.toString((char)258))) {
return new ArrayList<>();
}
String separator = Character.toString((char)257);
// Split by separator, keeping empty strings
return Arrays.asList(s.split(separator, -1));
}
}