产品展示 Dynamic News

java截取指定内容

发布于2025-02-19 17:38    文章作者:水荷

那近似取分包,便是把指定符号中央的内乱容给别离出去。假设此刻有这样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语法分包截与本义字符 ”的著作

上海莫尔丽信息科技有限公司