Skip to content

Commit dc65d11

Browse files
committed
Add char array constructor
1 parent 173363a commit dc65d11

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

CHANGELOG

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## v0.4.6
44

55
* add appending with strings
6-
* add boolean, float and double constructor
6+
* add boolean, float, double and char array constructor
77

88
## v0.4.5
99

src/main/java/at/favre/lib/bytes/Bytes.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.math.BigInteger;
2626
import java.nio.ByteBuffer;
2727
import java.nio.ByteOrder;
28+
import java.nio.CharBuffer;
2829
import java.nio.ReadOnlyBufferException;
2930
import java.nio.charset.Charset;
3031
import java.nio.charset.StandardCharsets;
@@ -433,6 +434,16 @@ public static Bytes from(CharSequence string, Charset charset) {
433434
return wrap(string.toString().getBytes(charset));
434435
}
435436

437+
/**
438+
* Creates a new instance from given char array using utf-8 encoding
439+
*
440+
* @param charArray to get the internal byte array from
441+
* @return new instance
442+
*/
443+
public static Bytes from(char[] charArray) {
444+
return from(CharBuffer.wrap(charArray).toString(), StandardCharsets.UTF_8);
445+
}
446+
436447
/**
437448
* Parses a big endian binary string (e.g. <code>10010001</code>)
438449
*

src/test/java/at/favre/lib/bytes/BytesConstructorTests.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,15 @@ public void fromString() {
241241
checkString("7asdh#ö01^^`´dµ@€", StandardCharsets.ISO_8859_1);
242242
}
243243

244+
@Test
245+
public void fromCharArray() {
246+
checkCharArray("");
247+
checkCharArray(" ");
248+
checkCharArray("\t");
249+
checkCharArray("a");
250+
checkCharArray("12345678abcdefjkl");
251+
}
252+
244253
@Test
245254
public void fromMultipleBytes() {
246255
assertArrayEquals(new byte[]{0x01, 0x02, 0x03}, Bytes.from(Bytes.from((byte) 0x01), Bytes.from((byte) 0x02), Bytes.from((byte) 0x03)).array());
@@ -261,6 +270,11 @@ private void checkString(String string, Charset charset) {
261270
}
262271
}
263272

273+
private void checkCharArray(String s) {
274+
Bytes b = Bytes.from(s.toCharArray());
275+
assertArrayEquals(String.valueOf(s.toCharArray()).getBytes(StandardCharsets.UTF_8), b.array());
276+
}
277+
264278
@Test
265279
public void fromInputStream() {
266280
checkInputStream(example_bytes_one);

0 commit comments

Comments
 (0)