激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java截取中英文混合字符串的方法

Java截取中英文混合字符串的方法

2019-06-30 21:04余-雷 Java教程

這篇文章主要為大家詳細(xì)介紹了Java截取中英文混合字符串的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

題目:

編寫一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。 但是要保證漢字不被截半個(gè),如“我ABC”4,應(yīng)該截為“我AB”,輸入“我ABC漢DEF”,6,應(yīng)該輸出為“我ABC”而不是“我ABC+漢的半個(gè)”。

GB2312、GBK、GB18030,CP936以及CNS11643都滿足條件 -- 中文是占用2個(gè)字節(jié)的,英文是占用1一個(gè)字節(jié) 。

因?yàn)橹形霓D(zhuǎn)換為byte字節(jié),隨著編碼的不同,轉(zhuǎn)換的字節(jié)長(zhǎng)度也會(huì)不通,如編碼為UTF-8,一個(gè)中文字符串轉(zhuǎn)換為byte占三個(gè)字節(jié).

package com.suanfa;
 
import java.io.UnsupportedEncodingException;
 
public class CharactersSplit {
 /**
 * @param text
 *      目標(biāo)字符串
 * @param length
 *      截取長(zhǎng)度
 * @param encode
 *      采用的編碼方式
 * @return
 * @throws UnsupportedEncodingException
 */
 
 public static String substring(String text, int length, String encode)
  throws UnsupportedEncodingException {
 if (text == null) {
  return null;
 }
 StringBuilder sb = new StringBuilder();
 int currentLength = 0;
 for (char c : text.toCharArray()) {
  currentLength += String.valueOf(c).getBytes(encode).length;
  if (currentLength <= length) {
  sb.append(c);
  } else {
  break;
  }
 }
 return sb.toString();
 }
 
 public static void main(String[] args) throws UnsupportedEncodingException {
 String text = "我ABC漢DEF";
 int length1 = 3;
 int length2 = 6;
 String[] encodes = new String[] { "GB2312", "GBK", "GB18030", "CP936",
  "CNS11643", "UTF-8" };
 
 for (String encode : encodes) {
  System.out.println(new StringBuilder().append("用").append(encode)
   .append("編碼截取字符串 -- 【").append(text).append("】")
   .append(length1).append("個(gè)字節(jié)的結(jié)果是【")
   .append(substring(text, length1, encode)).append("】")
   .toString());
  System.out.println(new StringBuilder().append("用").append(encode)
   .append("編碼截取字符串 -- 【").append(text).append("】")
   .append(length2).append("個(gè)字節(jié)的結(jié)果是【")
   .append(substring(text, length2, encode)).append("】")
   .toString());
 }
 
 }
}

運(yùn)行后輸出:

用GB2312編碼截取字符串 -- 【我ABC漢DEF】3個(gè)字節(jié)的結(jié)果是【我A】
用GB2312編碼截取字符串 -- 【我ABC漢DEF】6個(gè)字節(jié)的結(jié)果是【我ABC】
用GBK編碼截取字符串 -- 【我ABC漢DEF】3個(gè)字節(jié)的結(jié)果是【我A】
用GBK編碼截取字符串 -- 【我ABC漢DEF】6個(gè)字節(jié)的結(jié)果是【我ABC】
用GB18030編碼截取字符串 -- 【我ABC漢DEF】3個(gè)字節(jié)的結(jié)果是【我A】
用GB18030編碼截取字符串 -- 【我ABC漢DEF】6個(gè)字節(jié)的結(jié)果是【我ABC】
用CP936編碼截取字符串 -- 【我ABC漢DEF】3個(gè)字節(jié)的結(jié)果是【我A】
用CP936編碼截取字符串 -- 【我ABC漢DEF】6個(gè)字節(jié)的結(jié)果是【我ABC】
用CNS11643編碼截取字符串 -- 【我ABC漢DEF】3個(gè)字節(jié)的結(jié)果是【我A】
用CNS11643編碼截取字符串 -- 【我ABC漢DEF】6個(gè)字節(jié)的結(jié)果是【我ABC】
用UTF-8編碼截取字符串 -- 【我ABC漢DEF】3個(gè)字節(jié)的結(jié)果是【我】
用UTF-8編碼截取字符串 -- 【我ABC漢DEF】6個(gè)字節(jié)的結(jié)果是【我ABC】

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
  • Java教程java 中鎖的性能提高辦法

    java 中鎖的性能提高辦法

    這篇文章主要介紹了java 中鎖的性能提高辦法的相關(guān)資料,需要的朋友可以參考下...

    Java之家3092020-08-13
  • Java教程淺談Java(SpringBoot)基于zookeeper的分布式鎖實(shí)現(xiàn)

    淺談Java(SpringBoot)基于zookeeper的分布式鎖實(shí)現(xiàn)

    這篇文章主要介紹了Java(SpringBoot)基于zookeeper的分布式鎖實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的...

    LJY_SUPER5742021-07-21
  • Java教程SpringBoot引入Thymeleaf的實(shí)現(xiàn)方法

    SpringBoot引入Thymeleaf的實(shí)現(xiàn)方法

    這篇文章主要介紹了SpringBoot引入Thymeleaf的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下...

    Bobby6472021-07-28
  • Java教程springboot ehcache 配置使用方法代碼詳解

    springboot ehcache 配置使用方法代碼詳解

    EhCache是一個(gè)比較成熟的Java緩存框架,Springboot對(duì)ehcache的使用非常支持,所以在Springboot中只需做些配置就可使用,且使用方式也簡(jiǎn)易,今天給大家分享spri...

    m1719309529412912021-09-16
  • Java教程JavaWeb 實(shí)現(xiàn)驗(yàn)證碼功能(demo)

    JavaWeb 實(shí)現(xiàn)驗(yàn)證碼功能(demo)

    在 WEB-APP 中一般應(yīng)用于:登錄、注冊(cè)、買某票、秒殺等場(chǎng)景,大家都接觸過這個(gè)驗(yàn)證碼操作,今天小編通過實(shí)例代碼給大家講解javaweb實(shí)現(xiàn)驗(yàn)證碼功能,需要...

    java教程網(wǎng)12832020-08-05
  • Java教程Java list.remove( )方法注意事項(xiàng)

    Java list.remove( )方法注意事項(xiàng)

    這篇文章主要介紹了Java list.remove( )方法注意事項(xiàng),非常簡(jiǎn)單易懂,需要的朋友可以參考下...

    妖久9552021-05-25
  • Java教程JAVA中通過自定義注解進(jìn)行數(shù)據(jù)驗(yàn)證的方法

    JAVA中通過自定義注解進(jìn)行數(shù)據(jù)驗(yàn)證的方法

    java 自定義注解驗(yàn)證可自己添加所需要的注解,下面這篇文章主要給大家介紹了關(guān)于JAVA中通過自定義注解進(jìn)行數(shù)據(jù)驗(yàn)證的相關(guān)資料,文中通過示例代碼介紹...

    Decouple6362021-05-25
  • Java教程Java之Springcloud Feign組件詳解

    Java之Springcloud Feign組件詳解

    這篇文章主要介紹了Java之Springcloud Feign組件詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下...

    深情以改10322021-11-12
主站蜘蛛池模板: 精品一区二区在线观看 | 99精品视频免费 | 国产寡妇xxxxxxxx性开放 | 欧美日韩在线免费观看 | 欧美成年人在线视频 | 成人免费在线视频播放 | 日本最新免费二区三区 | 九九黄色 | 精国产品一区二区三区四季综 | 欧美一级黄色片在线观看 | av在线免费播放网站 | 成人黄色免费观看 | 国产成人精品无人区一区 | 97超碰资源站 | 欧美性生话视频 | 精品一区二区久久久久久久网精 | 成人免费毛片一 | 性欧美极品xxxx欧美一区二区 | 日韩在线激情 | 久久国产28 | 日韩av电影在线观看 | 国产正在播放 | 国产女同疯狂激烈互摸 | 黄色大片在线免费看 | 毛片免费看电影 | 一色桃子av大全在线播放 | av影片在线观看 | 久久99国产综合精品 | 色淫湿视频 | 久久影院午夜 | 久草在线高清视频 | 污版视频在线观看 | 12av毛片| bt 自拍 另类 综合 欧美 | 国产午夜三级一区二区三桃花影视 | 久久久综 | 4399一级成人毛片 | 欧美h版电影在线观看 | 久草在线精品观看 | 国产精品久久久久久久久久尿 | 久久国产精品小视频 |