Windows 10
CIQ SDK 3.0.7
Devices tested in simulator: 235, 935, 645M, Fenix 5X Plus
Description:
StringUtil.charArrayToString(...).length() always returns 0, although the string can be printed and converted back to a charArray using built-in functions, which probably explains why nobody has found this bug yet.
Not really sure what to say here. I hope the test case speaks for itself, unless I misunderstood what StringUtil.charArrayToString() or Lang.String.length() are supposed to do.
Also tested with SDK 2.4.7, with identical results.
var x = ['a', 'b', 'c', 'd'];
System.println("x = " + x);
System.println("x.size() = " + x.size());
var x_str = StringUtil.charArrayToString(x);
System.println("x_str = StringUtil.charArrayToString(x) = " + x_str);
System.println("x_str.length() = " + x_str.length());
System.println("");
var y_str = "abcd";
System.println("y_str = " + y_str);
System.println("y_str.length() = " + y_str.length());
var y_array = y_str.toCharArray();
System.println("y_array = y_str.toCharArray() = " + y_array);
System.println("y_array.size() = " + y_array.size());
var y_str1 = StringUtil.charArrayToString(y_array);
System.println("y_str1 = StringUtil.charArrayToString(y_array) = " + y_str1);
System.println("y_str1.length() = " + y_str1.length());
var y_array1 = y_str.toCharArray();
System.println("y_array1 = y_str1.toCharArray() = " + y_array1);
System.println("y_array1.size() = " + y_array1.size());
Output:
x = [a, b, c, d]
x.size() = 4
x_str = StringUtil.charArrayToString(x) = abcd
x_str.length() = 0 // !!!!!!
y_str = abcd
y_str.length() = 4
y_array = y_str.toCharArray() = [a, b, c, d]
y_array.size() = 4
y_str1 = StringUtil.charArrayToString(y_array) = abcd
y_str1.length() = 0 // !!!!!!
y_array1 = y_str1.toCharArray() = [a, b, c, d]
y_array1.size() = 4