最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 實現(xiàn)截取字符串并按字節(jié)分別輸出實例代碼

 更新時間:2017年03月08日 11:49:48   投稿:lqh  
這篇文章主要介紹了java 實現(xiàn)截取字符串并按字節(jié)分別輸出實例代碼的相關(guān)資料,需要的朋友可以參考下

java 實現(xiàn)截取字符串并按字節(jié)分別輸出實例代碼

前言:

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

2、解析思想

本題容易產(chǎn)生困惑的是中文字符和英文字符如何處理,在這里需要考慮漢字和英文字符的占用字節(jié)數(shù)問題,中文字符占兩個字節(jié),英文字符占一個字節(jié),了解這個關(guān)鍵點后,那么編寫代碼就容易啦!

3、Java代碼

import java.util.Scanner;

public class Interception {
  static String ss; //要進行截取操作的字符串
  static int n; //截取的字符串的字節(jié)數(shù)
  public static void main(String[] args) {
    System.out.println("請輸入字符串:");
    Scanner scStr = new Scanner(System.in); //從鍵盤獲取字符串
    ss = scStr.next(); //將Scanner對象中的內(nèi)容以字符串的形式取出來
    System.out.println("請輸入字節(jié)數(shù):");
    Scanner scByte = new Scanner(System.in); //從鍵盤獲取字符串
    n = scByte.nextInt(); //將Scanner對象中的內(nèi)容以數(shù)值的形式取出來
    Interception(setValue()); //方法與方法間的套用
  }

  public static String[] setValue() { //此方法的作用是將字符串轉(zhuǎn)換成字符串數(shù)組
    String[] string = new String[ss.length()]; //創(chuàng)建一個字符數(shù)組string
    for (int i = 0; i < string.length; i++) {
      string[i] = ss.substring(i, i + 1);  //將字符串ss中的第i個字符取出,放入字符數(shù)組中string中
    }
    return string; //將這個字符數(shù)組返回
  }

  public static void Interception(String[] string) {
    int count = 0;
    String m = "[\u4e00-\u9fa5]"; //漢字的正則表達試
    System.out.println("每" + n + "字節(jié)進行劃分的字符串如下所示:");
    for (int i = 0; i < string.length; i++) {
      if (string[i].matches(m)) { //將字符數(shù)組中的每一個元素與表則表達式進行匹配,如果相同則返回true
        count = count + 2; //如果當前字符是漢字,計數(shù)器count就加2
      } else {
        count = count + 1; //如果當前字符不是漢字,計數(shù)器count就加1
      }
      if (count < n) { //如果當前計數(shù)器count的值小于n,則輸出當前字符
        System.out.print(string[i]);
      } else if (count == n) { //如果當前計數(shù)器count的值等于n,則輸出當前字符
        System.out.print(string[i]);
        count = 0;
        System.out.println(); //內(nèi)循環(huán)結(jié)果,則需要換行,起到控制打印格式的作用
      } else {
        count = 0; //如果當前計數(shù)器count的值大于n,則計數(shù)器count清零,接著執(zhí)行外部循環(huán)
        System.out.println();
      }
    }
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • mybatis創(chuàng)建項目報Invalid?bound?statement?(not?found)錯誤解決方法

    mybatis創(chuàng)建項目報Invalid?bound?statement?(not?found)錯誤解決方法

    使用MyBatis能夠幫助我們將SQL語句和Java代碼分離,這篇文章主要給大家介紹了關(guān)于mybatis創(chuàng)建項目報Invalid?bound?statement?(not?found)錯誤的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • JAVA中IP和整數(shù)相互轉(zhuǎn)化的方法

    JAVA中IP和整數(shù)相互轉(zhuǎn)化的方法

    這篇文章主要介紹了JAVA中IP和整數(shù)相互轉(zhuǎn)化的方法,涉及java數(shù)值轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • mybatis plus 自動轉(zhuǎn)駝峰配置小結(jié)

    mybatis plus 自動轉(zhuǎn)駝峰配置小結(jié)

    SpringBoot提供兩種配置Mybatis的方式,第一種是通過yml或application.properties文件開啟配置,第二種是使用自定義配置類,通過給容器添加一個ConfigurationCustomizer來實現(xiàn)更靈活的配置,這兩種方法可以根據(jù)項目需求和個人喜好選擇使用
    2024-10-10
  • eclipse創(chuàng)建項目沒有dynamic web的解決方法

    eclipse創(chuàng)建項目沒有dynamic web的解決方法

    最近上課要用到eclipse,要用到Dynamic web project.但是我下載的版本上沒有.接下來就帶大家了解 eclipse創(chuàng)建項目沒有dynamic web的解決方法,文中有非常詳細的圖文示例,需要的朋友可以參考下
    2021-06-06
  • Spring?data?jpa緩存機制使用總結(jié)

    Spring?data?jpa緩存機制使用總結(jié)

    這篇文章主要介紹了Spring?data?jpa緩存機制使用總結(jié),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java線程池中Worker線程執(zhí)行流程原理解析

    java線程池中Worker線程執(zhí)行流程原理解析

    這篇文章主要為大家介紹了java線程池中Worker線程執(zhí)行流程原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Java中Date、LocalDate、LocalDateTime、LocalTime、時間戳之間的相互轉(zhuǎn)換代碼

    Java中Date、LocalDate、LocalDateTime、LocalTime、時間戳之間的相互轉(zhuǎn)換代碼

    這篇文章主要介紹了Java中日期時間轉(zhuǎn)換的多種方法,包括將Date轉(zhuǎn)換為LocalDateTime、LocalDate等,以及將時間戳轉(zhuǎn)換為LocalDateTime,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • SpringBoot中的@Component注解源碼

    SpringBoot中的@Component注解源碼

    在SpringBoot中,@Component注解用于標識一個類為Bean,并由Spring進行管理,它需要配合@ComponentScan注解使用,后者負責掃描包含@Component的類,并進行自動裝配,本文給大家介紹SpringBoot中的@Component注解源碼,感興趣的朋友一起看看吧
    2024-01-01
  • java中Class.forName方法的作用詳解

    java中Class.forName方法的作用詳解

    Class.forName(xxx.xx.xx) 返回的是一個類,但Class.forName方法的作用到底是什么終?下面這篇文章就來給大家詳細介紹了關(guān)于java中Class.forName方法的作用,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • spring?boot項目使用@Async注解的坑

    spring?boot項目使用@Async注解的坑

    這篇文章主要為大家介紹了spring?boot項目中使用@Async注解遇到的坑示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論

静乐县| 万山特区| 大理市| 宜良县| 石楼县| 临朐县| 新干县| 富顺县| 建始县| 乐清市| 丹东市| 葵青区| 门源| 霍州市| 五大连池市| 大厂| 赤水市| 枣阳市| 安平县| 腾冲县| 南安市| 洛隆县| 扎鲁特旗| 康保县| 屯昌县| 莱州市| 喀喇| 兴海县| 仙游县| 阳西县| 长泰县| 汤阴县| 安新县| 延庆县| 印江| 张北县| 镇宁| 肥东县| 临猗县| 乌苏市| 高雄县|