kopia lustrzana https://github.com/sh123/codec2_talkie
67 wiersze
1.8 KiB
Java
67 wiersze
1.8 KiB
Java
package com.radio.codec2talkie.tools;
|
|
|
|
import android.util.Log;
|
|
|
|
import java.nio.ByteBuffer;
|
|
import java.util.Arrays;
|
|
import java.util.Objects;
|
|
|
|
public class TextTools {
|
|
public static String addZeroWidthSpaces(String text) {
|
|
return text.replaceAll(".(?!$)", "$0\u200b");
|
|
}
|
|
|
|
public static int countChars(String text, char ch) {
|
|
int count = 0;
|
|
|
|
for (int i = 0; i < text.length(); i++) {
|
|
if (text.charAt(i) == ch) {
|
|
count++;
|
|
}
|
|
}
|
|
return count;
|
|
}
|
|
|
|
public static String stripNulls(String text) {
|
|
int pos = text.indexOf('\0');
|
|
if (pos == -1) return text;
|
|
return text.substring(0, pos);
|
|
}
|
|
|
|
public static byte[] stripNulls(byte[] data) {
|
|
int i = 0;
|
|
for (byte b : data) {
|
|
if (b == 0) break;
|
|
i++;
|
|
}
|
|
if (i == data.length) return data;
|
|
return Arrays.copyOf(data, i);
|
|
}
|
|
|
|
public static String getString(ByteBuffer byteBuffer) {
|
|
StringBuilder result = new StringBuilder();
|
|
if (byteBuffer.position() > 0) {
|
|
byteBuffer.flip();
|
|
while (byteBuffer.hasRemaining()) {
|
|
char c = (char)byteBuffer.get();
|
|
if (c == '\n') {
|
|
break;
|
|
}
|
|
result.append(c);
|
|
}
|
|
byteBuffer.compact();
|
|
}
|
|
return result.toString();
|
|
}
|
|
|
|
public static byte[] hexStringToByteArray(String s) {
|
|
int len = s.length();
|
|
byte[] data = new byte[len / 2];
|
|
for (int i = 0; i < len; i += 2) {
|
|
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
|
|
+ Character.digit(s.charAt(i+1), 16));
|
|
}
|
|
return data;
|
|
}
|
|
}
|