国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發 > Java > 正文

Java中如而后按字節截取字符串

2023-06-10 12:43:26
字體:
來源:轉載
供稿:網友

有時我們需要按字節數來截取一個字符串,即輸入為一個字符串和字節數,輸出為按字節截取的字符串。但是要保證漢字不被截半個,如"我ABC"4,應該截為"我AB",輸入"我ABC漢DEF",6,應該輸出為"我ABC"而不是"我ABC+漢的半個",相關源代碼如下所示:

  public static String substring(String str, int toCount,String more)

  {

  int reInt = 0;

  String reStr = "";

  if (str == null)

  return "";

  char[] tempChar = str.toCharArray();

  for (int kk = 0; (kk < tempChar.length && toCount > reInt); kk++) {

  String s1 = str.valueOf(tempChar[kk]);

  byte[] b = s1.getBytes();

  reInt += b.length;

  reStr += tempChar[kk];

  }

  if (toCount == reInt || (toCount == reInt - 1))

  reStr += more;

  return reStr;

  }

Web應用程序在瀏覽器中顯示字符串時,由于顯示長度的限制,常常需要將字符串截取后再進行顯示。但目前很多流行的語言,如C#、Java內部采用的都是 Unicode 16(UCS2)編碼,在這種編碼中所有的字符都是兩個字符,因此,如果要截取的字符串是中、英文、數字混合的,就會產生問題,如下面的字符串:

String s = "a加b等于c,如果a等1、b等于2,那么c等3";

上面的字符串既有漢字,又有英文字符和數字。如果要截取前6個字節的字符,應該是”a加b等",但如果用substring方法截取前6個字符就成了"a 加b等于c"。產生這個問題的原因是將substring方法將雙字節的漢字當成一個字節的字符(UCS2字符)處理了。要解決這個問題的方法是首先得到該字符串的UCS2編碼的字節數組,如下面的代碼如下:

byte[] bytes = s.getBytes("Unicode");

由于上面生成的字節數組中前兩個字節是標志位,bytes[0] = -2,bytes[1] = -1,因此,要從第三個字節開始掃描,對于一個英文或數字字符,UCS2編碼的第二個字節是相應的ASCII,第一個字節是0,如a的UCS2編碼是0  97,而漢字兩個字節都不為0,因此,可以利于UCS2編碼的這個規則來計算實際的字節數,該方法的實現代碼如下:

public static String bSubstring(String s, int length) throws Exception

  {

  byte[] bytes = s.getBytes("Unicode");

  int n = 0; // 表示當前的字節數

  int i = 2; // 要截取的字節數,從第3個字節開始

  for (; i < bytes.length && n < length; i++)

  {

  // 奇數位置,如3、5、7等,為UCS2編碼中兩個字節的第二個字節

  if (i % 2 == 1)

  {

  n++; // 在UCS2第二個字節時n加1

  }

  else

  {

  // 當UCS2編碼的第一個字節不等于0時,該UCS2字符為漢字,一個漢字算兩個字節

  if (bytes[i] != 0)

  {

  n++;

  }

  }

  }

  // 如果i為奇數時,處理成偶數

  if (i % 2 == 1)

  {

  // 該UCS2字符是漢字時,去掉這個截一半的漢字

  if (bytes[i - 1] != 0)

  i = i - 1;

  // 該UCS2字符是字母或數字,則保留該字符

  else

  i = i + 1;

  }

  return new String(bytes, 0, i, "Unicode");

  }

  下面代碼使用了bSubstring方法:

  String s = "a加b等于c,如果a等1、b等于2,那么c等3";

  System.out.println(bSubstring(s, 6));

  上面的代碼截取的字符串是"a加b等"。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产精品伦一区二区三区级视频频| 国产一卡2卡3卡免费网站| 丁香综合在线| 白浆爆出在线观看| 四虎成人精品在永久在线观看| 黄色国产网站在线观看| 国产中文字幕在线观看| 国产蜜臀av在线播放| 国产精品一区牛牛影视| 国产在线观看a| 中文字幕网站视频在线| 国产盗摄一区二区| 伊人网在线视频| 超碰在线免费播放| 五月综合网站| 99re热视频在线| 青青草中文字幕| 国产精品一区在线看| 国产成人亚洲综合小说区| 伊人精品影院| 午夜性爽视频男人的天堂| 超碰国产在线观看| 精品视频vs精品视频| 全网国产福利在线播放| 天堂在线免费观看| 亚洲男人的天堂成人| 黄色毛片在线观看| 国产视频资源| 欧洲有码在线视频| 国产福利片在线| 国产在线第一页| 国产对白国语对白| 国产嫩草在线视频| av在线官网| 国产福利电影在线观看| 亚洲欧美国产另类首页| 中文字幕麻豆| 亚洲免费国产| 国产精品久久久久久精| 欧美96在线| 尤物在线视频观看| 九九热免费在线视频| 99re热在线观看| 国产不卡视频| 91欧洲在线视精品在亚洲| 最近中文字幕mv免费高清视频8 | 国产激情在线视频| 国产尤物视频| 国产美女在线播放| 亚洲精品aaaa| 亚洲va国产日韩欧美精品色婷婷| 中文字幕亚洲精品视频| 国产真实伦在线观看| a视频在线播放| av在线播放网| 欧美日韩在线中文字幕| 男人操女人免费网站| 欧美日韩久久中文字幕| 羞羞视频在线观看免费| 亚洲欧洲成人| 另类综合图区| 丁香花高清视频完整版在线观看| 国产在线免费观看| 国产乱子视频| 奇米影视狠狠狠| 国产自产视频| 国产探花在线观看| 国产福利在线看| 亚洲欧美精选| 国内自拍视频在线看免费观看| 国产美女福利在线| 国产日韩网站| 亚洲精品aaaa| 高清av在线| 国产黄色免费网站| 四虎a级欧美在线观看| 国产在线视频精品视频免费看| 国产你懂的在线观看| 国产福利片在线| 国产福利视频在线| 黄色网页网址在线免费| 精品一区二区在线欧美| а√最新版地址在线天堂| 国产永久免费高清在线观看| 国产一区二区三区不卡在线| 91最新在线| 国产永久免费高清在线观看| 2020国产在线视频| 国产女人在线观看| 亚洲欧洲成人| 国产高清大尺度一区二区不卡| 狠狠插狠狠操| 亚洲图区综合| 国产高清视频免费最新在线| 在线免费看黄av| 国产麻豆一级片| 亚洲欧美综合乱码精品成人网| 懂色av一区| 夜夜操com| 精品视频vs精品视频| 最近高清中文在线字幕在线观看| 亚洲www色| 在线一区二区三区精品| 国产视频精选在线| 尤物视频在线免费观看| 成视频年人免费看黄网站| av在线免费播放网站| 在线视频99| 四虎在线免费视频| 国产午夜在线视频| 国产美女在线观看| 国产美女av在线| 国产在线视精品麻豆| 轻轻色免费在线视频| 在线国产小视频| 亚洲精品自拍区在线观看| 国产成人精品综合网站| 91社区在线观看| av免费在线一区二区三区| 亚洲jjzzjjzz在线观看| 日本免费一二区| 国产在线视频福利| 中文字幕网站视频在线| 91最新在线| av超碰在线| 日韩在线天堂| 国产美女一区视频| 国产精品入口麻豆免费观看| 国产精品入口麻豆高清| 91在线网址| 黄污在线观看| 国产成人综合亚洲欧美在| 精品欧美色视频网站在线观看| 中文av字幕| 六月天色婷婷| 国产三级在线观看| 午夜在线不卡| 国产一级黄色片免费| 精品国产二区三区| 亚洲视频在线网| 国产农村av| a视频在线看| 国产女王在线**视频| av免费在线观| 国产乱精品一区二区三区| 精品欧美不卡一区二区在线观看| 欧美精品se| 国产成人午夜电影| 久草福利资源在线视频| 精品国产福利一区二区在线| 91av资源在线| 日本啊v在线| 国产jizz| 国产视频二区在线观看| 亚洲妇熟xxxx妇色黄| 国产一区二区影视| 久色视频在线观看| 亚洲xxxxxx| 69日小视频在线观看| 国产免费福利| 久精品在线观看| 四虎网站在线观看| 精品久久亚洲一级α| 国产二区三区四区| 91欧洲在线视精品在亚洲| 国产二区三区四区| 中文产幕区在线观看| 在线观看av中文| www免费在线观看视频| 992tv在线观看在线播放| 精品推荐国产麻豆剧传媒| 在线视频三级| 亚洲免费国产| 国产男女无套在线播放| 国产精品入口麻豆高清| 精品街拍一区二区| www在线视频| 国产一级性片| 在线观看免费观看在线91| wwwww亚洲| 福利在线视频导航| 国产丝袜精品丝袜| 四虎成人精品在永久在线观看| 国产网站av| 国产素人视频在线观看| 国产高清视频免费最新在线| 亚洲最新永久观看在线| 亚洲国产成人综合| 亚洲人在线播放| 午夜视频99| 天堂资源在线中文| 国产在线观看网站| 国产成人无吗| 国产极品美女到高潮| 国产视频中文字幕| 中文字幕日本在线| 日本电影全部在线观看网站视频| 国产成人天天5g影院| 国产精品久久久久久久牛牛| 丁香视频五月|