首页 > 编程语言 > 正文

java字符串解析,java后台解析json字符串

2020-05-16 17:04:15  来源:http://www.capsicumpm.com  编辑:admin

Java怎么将字符串转换为GB2312原编码

@Testpublicvoidtest333(){Stringa="青白";try{byte[]b=a.getBytes("GB2312");System.out.println(bytesToHexFun1(b));}catch(UnsupportedEncodingExceptione){e.printStackTrace();}}//将byte数组转成16进制字符串publicstaticStringbytesToHexFun1(byte[]bytes){char[]HEX_CHAR={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};//一个byte为8位,可用两个十六进制位标识char[]buf=newchar[bytes.length*2];inta=0;intindex=0;for(byteb:bytes){//使用除与取余进行转换if(b<0){a=256+b;}else{a=b;}buf[index++]=HEX_CHAR[a/16];buf[index++]=HEX_CHAR[a%16];}returnnewString(buf);}中心思想就是先转成GB2312的byte数组,再转成16进制就可以了。

Java 利用 doum4j 解析XML 字符串

public static void main(String args[]) { StringBuffer text = new StringBuffer(); text.append("<?xml version=\"1.0\"?>"); text.append("<MSG>"); text.append("<META>"); text.append("<TIME>#SS=20141111095510912#MB=20141111175508842</TIME>"); text.append("<QDM>CDM</QDM>"); text.append("<QRC>IOSERVER</QRC>"); text.append("<DDM>YTH</DDM>"); text.append("<DST>CTX</DST>"); text.append("<MSGTYPE>REQUEST</MSGTYPE>"); text.append("</META>"); text.append("<BIZ>"); text.append("<TOPIC />"); text.append("<KEY>CT_RELEASE</KEY>"); text.append("<RETC />"); text.append("<RETC />"); text.append("<RID />"); text.append("<MID>23c149f337b14ff2912a6eb51d8f6b31</MID>"); text.append("</BIZ>"); text.append("<DAT>FP05_ID=1#COBT=2#CTOT=3#GS=#RC=1#ISSR=1#REMITFLAG=#CTRLUNIT=1m 流量室 IKATA</DAT>"); text.append("</MSG>"); Map map = new HashMap(); Document doc = null; try { // 将字符串转为XML doc = DocumentHelper.parseText(text.toString()); // 获取根节点 Element rootElt = doc.getRootElement(); // 拿到根节点的名称 System.out.println("根节点:" + rootElt.getName()); // 获取根节点下的子节点DAT Iterator iter = rootElt.elementIterator("DAT"); String Dat = ((Element)iter.next()).getText(); System.out.println(Dat); map.put("DAT", Dat); } catch(Exception e) { } }输出结果如下:根节点:MSGFP05_ID=1#COBT=2#CTOT=3#GS=#RC=1#ISSR=1#REMITFLAG=#CTRLUNIT=1m 流量室 IKATA如果你的xml是存放在文件里面的,那么代码如下:public static void main(String args[]) { SAXReader reader = new SAXReader(); try { Document document = reader.read(new File("d:/aa.xml")); // 获取根节点 Element rootElt = doc.getRootElement(); // 拿到根节点的名称 System.out.println("根节点:" + rootElt.getName()); // 获取根节点下的子节点DAT Iterator iter = rootElt.elementIterator("DAT"); String Dat = ((Element)iter.next()).getText(); System.out.println(Dat); map.put("DAT", Dat); } catch (DocumentException e) { e.printStackTrace(); } }aa.xml就是你的xml文件,如果报错,请看下你xml文件头部的编码格式,改成gbk就ok了<?xml version="1.0" encoding="gbk"?>以下是输出结果:根节点:MSGFP05_ID=1#COBT=2#CTOT=3#GS=#RC=1#ISSR=1#REMITFLAG=#CTRLUNIT=1m 流量室 IKATA

C#中如何将一个字符串转化为变量,这个变量是已经定义的。

直接使用字符串作为变量名是不可行的。你可以使用if,或者switch代码块。 if(str=="a5“){ system.console.writeline(a5);}else if(str=="a4"){ system.console.writeline(a4);}例如这样。

java中16进制转字符串的问题

你代码有问题,看我的。、packagecom.weixin.util;importjava.io.ByteArrayOutputStream;publicclassShiLiuJinZhi{/***@date:2015年5月14日上午10:36:02*@Description:转化字符串为十六进制编码*@params*@return*/publicstaticStringtoHexString(Strings){Stringstr="";for(inti=0;i<s.length();i++){intch=(int)s.charAt(i);Strings4=Integer.toHexString(ch);str=str+s4;}returnstr;}/***@date:2015年5月14日上午10:35:53*@Description:转化十六进制编码为字符串*@params*@return*/publicstaticStringtoStringHex1(Strings){byte[]baKeyword=newbyte[s.length()/2];for(inti=0;i<baKeyword.length;i++){try{baKeyword[i]=(byte)(0xff&Integer.parseInt(s.substring(i*2,i*2+2),16));}catch(Exceptione){e.printStackTrace();}}try{s=newString(baKeyword,"utf-8");//UTF-16le:Not}catch(Exceptione1){e1.printStackTrace();}returns;}//转化十六进制编码为字符串publicstaticStringtoStringHex2(Strings){byte[]baKeyword=newbyte[s.length()/2];for(inti=0;i<baKeyword.length;i++){try{baKeyword[i]=(byte)(0xff&Integer.parseInt(s.substring(i*2,i*2+2),16));}catch(Exceptione){e.printStackTrace();}}try{s=newString(baKeyword,"utf-8");//UTF-16le:Not}catch(Exceptione1){e1.printStackTrace();}returns;}publicstaticvoidmain(String[]args){System.out.println(encode("aaa"));System.out.println(decode(encode("aaa")));}/**16进制数字字符集*/privatestaticStringhexString="0123456789ABCDEF";/**将字符串编码成16进制数字,适用于所有字符(包括中文)*/publicstaticStringencode(Stringstr){//根据默认编码获取字节数组byte[]bytes=str.getBytes();StringBuildersb=newStringBuilder(bytes.length*2);//将字节数组中每个字节拆解成2位16进制整数for(inti=0;i<bytes.length;i++){sb.append(hexString.charAt((bytes[i]&0xf0)>>4));sb.append(hexString.charAt((bytes[i]&0x0f)>>0));}returnsb.toString();}/**将16进制数字解码成字符串,适用于所有字符(包括中文)*/publicstaticStringdecode(Stringbytes){ByteArrayOutputStreambaos=newByteArrayOutputStream(bytes.length()/2);//将每2位16进制整数组装成一个字节for(inti=0;i<bytes.length();i+=2)baos.write((hexString.indexOf(bytes.charAt(i))<<4|hexString.indexOf(bytes.charAt(i+1))));returnnewString(baos.toByteArray());}//第二种方法://将指定byte数组以16进制的形式打印到控制台//复制代码代码如下:/*publicclassUtil{publicUtil(){}*//***将指定byte数组以16进制的形式打印到控制台*@paramhintString*@parambbyte[]*@returnvoid*//*publicstaticvoidprintHexString(Stringhint,byte[]b){System.out.print(hint);for(inti=0;i<b.length;i++){Stringhex=Integer.toHexString(b[i]&0xFF);if(hex.length()==1){hex='0'+hex;}System.out.print(hex.toUpperCase()+"");}System.out.println("");}*//***@parambbyte[]*@returnString*//*publicstaticStringBytes2HexString(byte[]b){Stringret="";for(inti=0;i<b.length;i++){Stringhex=Integer.toHexString(b[i]&0xFF);if(hex.length()==1){hex='0'+hex;}ret+=hex.toUpperCase();}returnret;}*//***将两个ASCII字符合成一个字节;如:"EF"-->0xEF*@paramsrc0byte*@paramsrc1byte*@returnbyte*//*publicstaticbyteuniteBytes(bytesrc0,bytesrc1){byte_b0=Byte.decode("0x"+newString(newbyte[]{src0})).byteValue();_b0=(byte)(_b0<<4);byte_b1=Byte.decode("0x"+newString(newbyte[]{src1})).byteValue();byteret=(byte)(_b0^_b1);returnret;}*//***将指定字符串src,以每两个字符分割转换为16进制形式如:"2B44EFD9"-->byte[]{0x2B,0x44,0xEF,0xD9}*@paramsrcString*@returnbyte[]*//*publicstaticbyte[]HexString2Bytes(Stringsrc){byte[]ret=newbyte[8];byte[]tmp=src.getBytes();for(inti=0;i<8;i++){ret[i]=uniteBytes(tmp[i*2],tmp[i*2+1]);}returnret;}}*/}

java怎么截取字符串中最后一个字符?

我们可以用String类的substring(int from,int to)方法去截字符串位置为from到to-1位置的字符如下;String str="1234:22:23";int i=str.lastIndexOf(":");希望可以帮助到你。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。