在线报名
报名热线:400-0919-097
在线客服
新闻中心
当前位置:学码思 > 新闻中心 >
java截取指定内容
编辑:诗丹   浏览时间:2025-02-14 14:07

那近似取分包,便是把指定符号中央的内乱容给别离出去。假设此刻有这样1组字符,该组字符串是相符规范java语法的1个变量,尔们要凭据java语法规范,从字符串中截与出去数组内中的值。

字符串内乱容以下,假设该文献是正在1个文献中的:

privatestaticString[]arr=newString[]{"\"jjj","dd\\\"dd"};

截与的划定规矩是,截与 " 中央的内乱容,内里是数组的值。

然则尔们要注重1个环境是变更字符,例如第两个变量内部,假使您的值要添 \ ,那必需正在 \ 添 \ 。

写法便是凭据字节值找第1个 " ,而后凭据下面的划定规矩找第两个 " ,并且要正在找到第两个 " 时,思量前方能否为蜕变字符的环境。

曲交瞅代码:

packagecom.pay;importjava.io.FileInputStream;importjava.io.InputStream;publicclassReadFile{publicstaticvoidmain(String[]args)throwsException{FileInputStreamfi=newFileInputStream("C:\\json.txt");byte[]fbt=inputStreamToByte(fi);if(null!=fbt&&fbt.length>3){intf=-1;for(inti=0;i<fbt.length;i++){byteb=fbt[i];if(b==34){//逢到了"//逢到"且前方没有是\,逢到"大概前方是单数个\,皆注明截与到了须要的内乱容if(f!=-1&&fbt[i-1]!=92||(f!=-1&&isDouAsc(fbt,i-1))){byte[]str=newbyte[i-f-1];System.arraycopy(fbt,f+1,str,0,i-f-1);System.out.println(newString(str));f=-1;}elseif(f==-1){//假若逢到了"则符号最先的索引地位f=i;}}}}}//逢到"前方是\的,要瞅前方1国有几个,要是是单数个,那便没有要剖析publicstaticbooleanisDouAsc(byte[]bt,inti){inttmp=0;for(;i>0;i--){if(bt[i]==92)tmp++;elseif(bt[i]!=92)break;}if(tmp%2==0)returntrue;returnfalse;}//从文献中读与字撙节publicsynchronizedstaticbyte[]inputStreamToByte(InputStreaminStream)throwsException{intcount=inStream.available();if(count==0){returnnull;}byte[]b=newbyte[count];inStream.read(b);returnb;}}

挨印:

\"jjjdd\\\"dd

正在干收集编程的时分,也是凭据最先符号战停止符号去分包的,然则那个符号也大概便是实质内乱容,因而要注重战处置此类环境。

尔屡屡皆是完成功效了便收代码,因此列位对于代码的立场,要仅供参照。

推举您浏览更多相关于“ java语法分包截与本义字符 ”的著作

地址:南京市科巷10号楼(邮政储蓄银行西北侧80米)  电话:400-080-3312

Copyright © 2024-2026  学码思推广专用站   http://www.xuems.net  .All Rights Reserved   网站地图  苏ICP备16033487号-3

分享到: