import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
public class ArrayEncoder {
/**
* Encodes an array to a string representation suitable for backward compatibility.
* Uses a simple format: "[element1,element2,element3,...]"
*
* @param array The array to encode.
* @return The encoded string representation of the array. Returns "[]" for null or empty arrays.
*/
public static String encodeArray(Object[] array) {
if (array == null || array.length == 0) {
return "[]";
}
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < array.length; i++) {
sb.append(encodeElement(array[i])); // Encode each element
if (i < array.length - 1) {
sb.append(","); // Add comma between elements
}
}
sb.append("]");
return sb.toString();
}
/**
* Encodes a single element to a string representation. Handles different data types.
*
* @param element The element to encode.
* @return The encoded string representation of the element.
*/
private static String encodeElement(Object element) {
if (element == null) {
return "null"; // Handle null elements
}
if (element instanceof String) {
return "\"" + element.toString() + "\""; // String elements are enclosed in quotes
} else if (element instanceof Integer || element instanceof Long || element instanceof Short || element instanceof Byte) {
return element.toString(); // Numeric elements are represented as strings
} else if (element instanceof Boolean) {
return element.toString(); // Boolean elements are represented as strings
} else {
return element.toString(); // Default to toString() for other types
}
}
public static void main(String[] args) {
//Example Usage
Integer[] intArray = {1, 2, 3, 4, 5};
String[] stringArray = {"apple", "banana", "cherry"};
Object[] mixedArray = {1, "hello", true, null, 3.14};
System.out.println("Integer Array: " + encodeArray(intArray));
System.out.println("String Array: " + encodeArray(stringArray));
System.out.println("Mixed Array: " + encodeArray(mixedArray));
System.out.println("Null Array: " + encodeArray(null));
System.out.println("Empty Array: " + encodeArray(new Object[0]));
}
}
Add your comment