String tlv="80037665658104727265668203726564";
위의 문자열 TLV를 아래와 같이 공백으로 구분하여 인쇄하고 싶습니다.
8003766565 810472726566 8203726564
예. 80-태그 03-길이 766565-값 (1 바이트와 같이 2 자리마다 총 3 바이트 길이)
위의 문제를 도와주세요.
public static String tlv(String str1)
{
String slim="";
String str=str1+"00";
int tlvlen=0;
while(str.substring(tlvlen+0,tlvlen+2).matches("AA|A4|A9|1E|C0|C1|C2|C3|C4|C5|C6|C7|C8|C9|CA|CB|CC|A8|A0|4F|50|51|52|53|54|61|73|80|81|82|83|84|85|86|87|88|89|95"))
{
int len=Convertion.hex2decimal(str.substring(tlvlen+2,tlvlen+4))*2+4;
String tlv=str.substring(tlvlen,len+tlvlen);
slim+=tlv+" ";
tlvlen=tlv.length()+tlvlen;
}
return slim;
}
변환 클래스에 hex2decimal 메서드가 있습니다. 이 방법은 길이 16 진수를 10 진수로 변환합니다.
public class Convertion {
public static int hex2decimal(String s) {
String digits = "0123456789ABCDEF";
s = s.toUpperCase();
int val = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int d = digits.indexOf(c);
val = 16 * val + d;
}
return val;
}}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다