java中如何替换字符串,要求不能使用String中的replace方法,最好利用byte数组来做 java里面byte数组和String字符串怎么转换

\u5982\u4f55\u7528replace\u66ff\u6362\u6570\u7ec4\u5f53\u4e2d\u7684\u5b57\u7b26\u4e32

string [] str={"123","234","345","456"};//\u6570\u7ec4 for (int i = 0; i < str.Length;i++ ) { str[i] = str[i].Replace("3","9");//\u5c063\u66ff\u6362\u62109 }

Java\u4e2dbyte\u6570\u7ec4\u8f6c\u6362\u6210string\u5b57\u7b26\u4e32\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528string\u7c7b\u7684\u6784\u9020\u51fd\u6570\u3002\u800cstring\u8f6cbyte\u6570\u7ec4\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528string\u7c7b\u578b\u7684getBytes\uff08\uff09\u65b9\u6cd5\u8fdb\u884c\u8f6c\u6362\uff0c\u5982\u4e0b\u5f62\u5f0f\uff1a
1\u3001string \u8f6c byte[]
String str = "Hello";//\u58f0\u660e\u4e00\u4e2a\u5b57\u7b26\u4e32
byte[] srtbyte = str.getBytes();//\u4f7f\u7528string\u7c7b\u7684getBytes\u65b9\u6cd5\u8fdb\u884c\u8f6c\u6362
2\u3001byte[] \u8f6c string
byte[] srtbyte;//\u58f0\u660e\u4e00\u4e2abyte\u5b57\u8282\u6570\u7ec4
String res = new String(srtbyte);//\u4f7f\u7528\u6784\u9020\u51fd\u6570\u8f6c\u6362\u6210\u5b57\u7b26\u4e32
System.out.println(res);
\u4e5f\u53ef\u4ee5\u5c06byte\u8f6c\u6362\u7684\u65f6\u5019\uff0c\u8bbe\u5b9a\u7f16\u7801\u65b9\u5f0f\u76f8\u4e92\u8f6c\u6362\uff0c\u5982\u4e0b\u4ee3\u7801\uff1a

String str = "hello";
byte[] srtbyte = null;
try {
srtbyte = str.getBytes("UTF-8");//\u8bbe\u5b9a\u8f6c\u6362\u7684\u7f16\u7801\u683c\u5f0f
String res = new String(srtbyte,"UTF-8");
System.out.println(res);
} catch (UnsupportedEncodingException e) {//\u6709\u53ef\u80fd\u4f1a\u51fa\u73b0\u4e0d\u80fd\u652f\u6301\u7684\u7f16\u7801\u683c\u5f0f\uff0c\u6355\u6349\u5f02\u5e38\u3002
e.printStackTrace();
}

我这里现在没有开发环境,只能给你一个思路。
有更简单的方式,就是使用正则表达式,如果非要byte数组的话
首先把字符串转换成byte数组
然后循环这个数组
比如你要把某字符串中所有的"abc"替换成"xyz"
因为abc的长度是3
在循环中你就取当前索引的字母和它后面的2个字母,加起来刚好是3个字母,把这3个字母组成一个字符串,看看是不是"abc",是"abc"的话
把这3个位置的元素从byte数组中移除,然后加上你要替换的内容。

你用byte数组将会非常麻烦,如果是替换一个字符还容易,如果是替换两个、三个或者更多就会循环加循环,不高效。
不想用replace,就自己写方法,用string的subString,加入你要替换abc为123,那么你就可以遍历这个String,然后碰到以a开头的并且后面还有至少两个字符的,你就把这三个字符换成123,长度不够就不换

你可以试试StringBuffer 只需要简简单单的一句话 能用一句话解决的问题 就不要用3句
StringBuffer sr = new StringBuffer("abcdefg").replace(1,4,'AAA')

String str1="abcd";String str2="bc";String str3="ef";把str1中的bc替换成str3
int index=str1.indexof(str2);
str1=str1.substring(0,index)+str3+str1.substring(index+str2.length);
我觉得这样做比byte数组简单些,效率高些.

  • java鎬庝箞鏇挎崲瀛楃涓鏌愪釜瀛楃
    绛旓細for锛坕nti=0锛沬<b銆俵ength锛沬++锛墈if锛坙astChar銆倀oString锛堬級銆俥quals锛坆锛籭锛斤級锛墈b锛籭锛="鏇挎崲"锛泒}for锛坕nti=0锛沬
  • java涓replace鍜宺eplaceAll鐨勫尯鍒
    绛旓細鍒欎笌replace()鏇挎崲瀛楃涓茬殑鏁堟灉鏄竴鏍风殑,鍗宠繖涓よ呬篃鏀寔瀛楃涓茬殑鎿嶄綔; \r\n 杩樻湁涓鐐规敞鎰:鎵ц浜嗘浛鎹㈡搷浣滃悗,婧愬瓧绗︿覆鐨勫唴瀹规槸娌℃湁鍙戠敓鏀瑰彉鐨. \r\n\r\n涓句緥濡備笅: \r\n \r\n String src = new String("ab43a2c43d"); \r\n\r\n System.out.println(src.replace("3"...
  • java寮鍙涓浣鎶瀛楃涓涓殑鐩稿悓瀛楃鏇挎崲涓轰笉鍚岀殑瀛楃鎴栧瓧绗︿覆?
    绛旓細String str = "aa锛焌a锛焌aaaaaa锛焌aaaaaaa锛焌aaaa锛焌aaaaa锛焌a";String destStr = "";String ss[] = str.split("锛");for (int i = 0; i < ss.length; i++) {if (i % 2 == 1) {destStr = destStr + ss[i] + ">>";} else if (i != ss.length - 1) {destStr =...
  • java涓浣曟浛鎹㈠瓧绗︿覆,瑕佹眰涓嶈兘浣跨敤String涓殑replace鏂规硶,鏈濂藉埄...
    绛旓細鐒跺悗寰幆杩欎釜鏁扮粍 姣斿浣犺鎶婃煇瀛楃涓蹭腑鎵鏈夌殑"abc"鏇挎崲鎴"xyz"鍥犱负abc鐨勯暱搴︽槸3 鍦ㄥ惊鐜腑浣犲氨鍙栧綋鍓嶇储寮曠殑瀛楁瘝鍜屽畠鍚庨潰鐨2涓瓧姣嶏紝鍔犺捣鏉ュ垰濂芥槸3涓瓧姣嶏紝鎶婅繖3涓瓧姣嶇粍鎴愪竴涓瀛楃涓诧紝鐪嬬湅鏄笉鏄"abc",鏄"abc"鐨勮瘽 鎶婅繖3涓綅缃殑鍏冪礌浠巄yte鏁扮粍涓Щ闄わ紝鐒跺悗鍔犱笂浣犺鏇挎崲鐨鍐呭銆
  • JAVA 濡備綍string鏇挎崲鎸囧畾瀛楃
    绛旓細JAVA String鏇挎崲鎸囧畾瀛楃鏈変袱涓柟娉://杩斿洖涓涓柊鐨勫瓧绗︿覆锛瀹冩槸閫氳繃鐢 newChar 鏇挎崲姝ゅ瓧绗︿覆涓嚭鐜扮殑鎵鏈 oldChar 鑰岀敓鎴愮殑public String replace(char oldChar,char newChar)//绀轰緥String str="Hello World";System.out.println( str.replace( 'H','W' ) );//杈撳嚭Wello World//浣跨敤缁欏畾鐨 ...
  • java淇敼瀛楃涓
    绛旓細char newChar)杩斿洖涓涓柊鐨勫瓧绗︿覆锛瀹冩槸閫氳繃鐢 newChar 鏇挎崲姝ゅ瓧绗︿覆涓嚭鐜扮殑鎵鏈 oldChar 鑰岀敓鎴愮殑銆傚鏋 oldChar 鍦ㄦ String 瀵硅薄琛ㄧず鐨勫瓧绗﹀簭鍒椾腑娌℃湁鍑虹幇锛屽垯杩斿洖瀵规 String 瀵硅薄鐨勫紩鐢ㄣ傚惁鍒欙紝鍒涘缓涓涓柊鐨 String 瀵硅薄锛岀敤鏉ヨ〃绀轰笌姝 String 瀵硅薄琛ㄧず鐨勫瓧绗﹀簭鍒楃浉绛夌殑瀛楃搴忓垪锛岄櫎浜嗘瘡涓嚭鐜扮殑...
  • java涓庝箞鏇挎崲string涓殑鏌愪釜瀛楃?
    绛旓細/¥392931String杩欎釜瀵逛簬绋嬪簭鍘熸潵璇翠竴瀹氭槸鏈鐔熸倝涓嶈繃鐨勶紝寰堝鏃跺欐垜浠兘涔犳儻鍘讳娇鐢⊿tring鐨勫師鐢熸柟娉曞幓瀹屾垚鏌ユ壘瀛楃涓銆鏇挎崲銆佸垹闄わ紝鑰屾鍒欒〃杈惧紡鐢变簬鐣ユ樉鑻︽订鐨勮娉曞父甯歌浜哄拷鐣ワ紝鍏跺疄寰堝鏃跺欎娇鐢ㄦ鍒欒〃杈惧紡鍙互鎻愰珮涓嶅皯鎬ц兘鍜岃妭鐪佽祫婧愩備竴銆佹鍒欒〃杈惧紡绠杩 姝e垯琛ㄨ揪寮忔鍒欒〃杈炬槸Java涓姣旇緝鐭涚浘鐨勭煡璇嗙偣锛屽洜涓...
  • java鎬庢牱灏瀛楃涓涓鐨瀛楁瘝鏇挎崲鎺
    绛旓細public static void main(String[] args){ String str="abc123123鎴愪綘鎳傚悧bxcxsaf"; //閫氳繃姝e垯琛ㄨ揪寮鏇挎崲鎺夋墍鏈夌殑瀛楁瘝 String strNew = str.replaceAll("[a-zA-Z]",""); System.out.println(strNew);} 杩愯缁撴灉濡備笅锛氫笁锛氭墿灞曪紙姝e垯琛ㄨ揪寮忥級姝e垯琛ㄨ揪寮忎娇鐢ㄥ崟涓瀛楃涓鏉ユ弿杩般...
  • java鎬庝箞鎶婁竴涓瀛楃涓涓鐨勫瓧绗︽浛鎹鎴愬埆
    绛旓細鍏堢湅涓嬫蹇碉紝鏈鍚庨潰鏈夎鍒颁慨鏀 涓.Java瀛楃涓绫诲熀鏈蹇 鍦JAVA璇█涓紝瀛楃涓鏁版嵁瀹為檯涓婄敱String绫绘墍瀹炵幇鐨勩侸ava瀛楃涓茬被鍒嗕负涓ょ被锛氫竴绫绘槸鍦ㄧ▼搴忎腑涓嶄細琚敼鍙橀暱搴︾殑涓嶅彉瀛楃涓诧紱浜岀被鏄湪绋嬪簭涓細琚敼鍙橀暱搴︾殑鍙彉瀛楃涓层侸ava鐜涓轰簡瀛樺偍鍜岀淮鎶よ繖涓ょ被瀛楃涓叉彁渚涗簡String鍜孲tringBuffer涓や釜绫汇備竴銆...
  • Java涓浣曟浛鎹㈠瓧绗︿覆涓殑瀛愬瓧绗︿覆
    绛旓細鏇挎崲瀛楃涓涓殑瀛愬瓧绗︿覆鐨勪唬鐮佸涓嬶細/** * * 鎶婂瓧绗︿覆涓殑姣忎釜绌烘牸鏇挎崲鎴%20.濡俉e are happy,鍒欒緭鍑篧e%20are%20happy * */public class ReplaceSpace { public void repalce(char[] oldchar,char[] replacement){ int sumOfSpace = 0; for(int i = 0;i < oldchar.length;i...
  • 扩展阅读:java字符替换不生效 ... java字符串反转和替换 ... java替换最后一个字符 ... java中如何输出字符串 ... java字符串替换方法 ... js替换指定文字 ... java正则替换字符串 ... java replace ... java替换字符串中的某个字符 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网