原文:按字節截取字符串避免半個漢字

總結: 思路:漢字的unicode編碼都是負數 注意事項:字符串的輸入編碼和輸出編碼 已經eclipse等編譯工具的編碼都會影響結果 所有最好把編碼設置一下或統一 自己的代碼 網上參考 今天去一個公司面試,碰到一個很久前練過的題目,竟然沒答出來,感覺好囧 回來好好研究一番,貼上代碼: String類的length 方法是以unicode代碼單元,換言之就是char的個數為來統計的。所以使用sub ...

2016-09-12 16:17 0 4880 推薦指數:

查看詳情

java算法面試題:編寫一個截取字符串的函數,輸入為一個字符串字節數,輸出為按字節截取字符串,但要保證漢字不被截取半個, 如“我ABC”,4,應該截取“我AB”,輸入“我ABC漢DEF”,6,應該輸出“我ABC”,而不是“我ABC+漢的半個”。

字符串打散成字節之后輸出的字節值變成了正數和負數,字符為一個正數,漢字為兩個負數 所以為了不輸出半個漢字,可以判斷負數的個數,然后確定截取數到底是多少,通過new String(buf,0,len)的構造方法把字節轉換成字符串 ...

Thu Jan 25 02:28:00 CST 2018 0 2627
字節長度截取字符串

業務場景:Oracle數據字符集UTF-8,字段類型為VARCHAR2(2000)。當插入字符串字節長度超過2000時,就會報錯,使用subString(0,2000)當字符串包含中文時,也會報錯,又不能直接只截取1000長度。所以需要一個根據字節長度來截取字符串的方法。 下面提供一下 ...

Mon Nov 12 19:47:00 CST 2018 0 752
java按字節截取字符串

解析:上面這個方法將漢字默認為2個字節,其他為1個字節,缺點是遇到UTF-8等編碼格式的時候不能用,經過代碼驗證"UTF-8"是默認一個漢字占3個字節。 結果:--str1.length=62----Byte長度=105-------str2=一百二十個字符怎么就那么難弄呢我該說 ...

Mon Apr 08 18:06:00 CST 2013 0 12697
字節長度截取字符串

默認的截取字符串都是根據字符長度或位置截取的,典型的兩個方法是substr和substring。 這樣導致的問題是截取同樣長度的字符串時,多字節字符漢字等)和單字節字符(半角英文字母、半角數字)占的位置長度差距較大,視覺上不太美觀,比如同樣是10個字符: /* * param ...

Tue Apr 17 03:12:00 CST 2018 0 1486
java 按字節截取字符串

import java.io.UnsupportedEncodingException;import org.springframework.util.StringUtils; public class CutString{ /** *判斷是否是一個中文漢字 *@param c 字符 ...

Thu May 13 23:54:00 CST 2021 0 1550
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM