欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java在原字符中插入新字符或字符串實例

 更新時間:2020年08月25日 08:45:34   作者:以自由之名  
這篇文章主要介紹了java在原字符中插入新字符或字符串實例,具有很好的價值,希望對大家有所幫助。一起跟隨小編過來看看吧

插入字符代碼:

public class Test {
  
 /**在原字符中插入新字符**/
  public static void main(String[] args){
  
  StringBuffer sb = new StringBuffer("田田是一個女生!");//建立一個字符緩存區(qū),緩存區(qū)中的內(nèi)容為"田田是一個女生!"
  System.out.println("原字符緩存區(qū)中的內(nèi)容為:"+sb);//輸出原字符緩存區(qū)中的內(nèi)容
  System.out.println("原字符緩存區(qū)中的長度為:"+sb.length() );//長度
  System.out.println("原字符緩存區(qū)中的容量為:"+sb.capacity() );//容量
  
  sb.insert(5, '小');//給指定下標位置前的值賦新值
  
  System.out.println("新字符緩存區(qū)中的內(nèi)容為:"+sb);//輸出新字符緩存區(qū)中的內(nèi)容
  System.out.println("新字符緩存區(qū)中的長度為:"+sb.length() );//長度
  System.out.println("新字符緩存區(qū)中的容量為:"+sb.capacity() );//容量  
  }  
}

解釋:sb.insert(5, ‘小');//給指定下標位置前的值賦新值,意思為在sb的第6個字符前插入‘小'字,5為字符緩存區(qū)下標的位置,和數(shù)組相同都是從0開始。

運行結(jié)果:

原字符緩存區(qū)中的內(nèi)容為:田田是一個女生!

原字符緩存區(qū)中的長度為:8

原字符緩存區(qū)中的容量為:24

新字符緩存區(qū)中的內(nèi)容為:田田是一個小女生!

新字符緩存區(qū)中的長度為:9

新字符緩存區(qū)中的容量為:24

/**********************************/ /**********************************/

插入字符串代碼:

public class Test {
  
 /**在原字符中插入新字符**/
  public static void main(String[] args){
  
  StringBuffer sb = new StringBuffer("田田是一個女生!");//建立一個字符緩存區(qū),緩存區(qū)中的內(nèi)容為"田田是一個女生!"
  System.out.println("原字符緩存區(qū)中的內(nèi)容為:"+sb);//輸出原字符緩存區(qū)中的內(nèi)容
  System.out.println("原字符緩存區(qū)中的長度為:"+sb.length() );//長度
  System.out.println("原字符緩存區(qū)中的容量為:"+sb.capacity() );//容量
  
  sb.insert(5, "剛滿18歲的");//給指定下標位置前的值賦一個字符串
  
  System.out.println("新字符緩存區(qū)中的內(nèi)容為:"+sb);//輸出新字符緩存區(qū)中的內(nèi)容
  System.out.println("新字符緩存區(qū)中的長度為:"+sb.length() );//長度
  System.out.println("新字符緩存區(qū)中的容量為:"+sb.capacity() );//容量  
 
  }  
}

運行結(jié)果:

原字符緩存區(qū)中的內(nèi)容為:田田是一個女生!

原字符緩存區(qū)中的長度為:8

原字符緩存區(qū)中的容量為:24

新字符緩存區(qū)中的內(nèi)容為:田田是一個剛滿18歲的女生!

新字符緩存區(qū)中的長度為:14

新字符緩存區(qū)中的容量為:24

總結(jié):

sb.insert(5, '小')是給在字符串sb的第6個字符前插入‘小'字;

sb.insert(5, "剛滿18歲的");是給在字符串sb的第6個字符前插入字符串"剛滿18歲的";

注意:字符用‘',字符串用""

補充知識:java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:換行,用于解決生成pdf換行問題等問題

原因: 由于html轉(zhuǎn)pdf時,不能自動換行,因此才有下面的代碼.

注釋:完全模擬html頁面的自動換行!

最后的頁面展示效果:每一行的長度都一樣,看上去像<td></td>的自動換行一樣

package test;

import java.io.UnsupportedEncodingException;

/**
 * 解決pdf換行問題,在指定位置插入指定字符串,兼容中英文以及特殊字符
 * 
 * @author xg君
 * 
 */
public class app {

 public static void main(String[] args) throws UnsupportedEncodingException {
  System.out.println(addStr(10, "<br/>", "as阿薩德dsa阿斯蒂芬fladadasdsjf阿斯蒂芬ljdsljkjlfdsklfd啥地方都是skljdsasfasdfads"));
 }

 /**
  * 插入方法
  * 
  * @param num
  *   每隔幾個字符插入一個字符串(中文字符)
  * @param splitStr
  *   待指定字符串
  * @param str
  *   原字符串
  * @return 插入指定字符串之后的字符串
  * @throws UnsupportedEncodingException
  */
 public static String addStr(int num, String splitStr, String str) throws UnsupportedEncodingException {
  StringBuffer sb = new StringBuffer();
  String temp = str;

  int len = str.length();
  while (len > 0) {
   int idx = getEndIndex(temp, num);
   sb.append(temp.substring(0, idx + 1)).append(splitStr);
   temp = temp.substring(idx + 1);
   len = temp.length();
  }

  return sb.toString();
 }

 /**
  * 兩個數(shù)字/英文
  * 
  * @param str
  *   字符串
  * @param num
  *   每隔幾個字符插入一個字符串
  * @return int 最終索引
  * @throws UnsupportedEncodingException
  */
 public static int getEndIndex(String str, double num) throws UnsupportedEncodingException {
  int idx = 0;
  double val = 0.00;
  // 判斷是否是英文/中文
  for (int i = 0; i < str.length(); i++) {
   if (String.valueOf(str.charAt(i)).getBytes("UTF-8").length >= 3) {
    // 中文字符或符號
    val += 1.00;
   } else {
    // 英文字符或符號
    val += 0.50;
   }
   if (val >= num) {
    idx = i;
    if (val - num == 0.5) {
     idx = i - 1;
    }
    break;
   }
  }
  if (idx == 0) {
   idx = str.length() - 1;
  }
  return idx;
 }
}

效果:

以上這篇java在原字符中插入新字符或字符串實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java集合ArrayList與LinkedList詳解

    Java集合ArrayList與LinkedList詳解

    這篇文章主要介紹了Java集合ArrayList與LinkedList詳解,對于ArrayList和LinkedList,他們都是List接口的一個實現(xiàn)類,并且我們知道他們的實現(xiàn)方式各不相同,例如ArrayList底層實現(xiàn)是一個數(shù)組
    2022-08-08
  • Elasticsearch中store field與non-store field的區(qū)別說明

    Elasticsearch中store field與non-store field的區(qū)別說明

    這篇文章主要介紹了Elasticsearch中store field與non-store field的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java數(shù)據(jù)庫存儲數(shù)組的方法小結(jié)

    Java數(shù)據(jù)庫存儲數(shù)組的方法小結(jié)

    在現(xiàn)代軟件開發(fā)中,數(shù)組是常用的數(shù)據(jù)結(jié)構(gòu)之一,然而,在關(guān)系數(shù)據(jù)庫中直接存儲數(shù)組并不是一個簡單的任務(wù),本文將詳細介紹幾種在Java中將數(shù)組存儲到數(shù)據(jù)庫的方法,包括使用JPA、JSON、XML、以及關(guān)系型數(shù)據(jù)庫的數(shù)組類型等,需要的朋友可以參考下
    2024-09-09
  • 關(guān)于Java中static關(guān)鍵字的用法

    關(guān)于Java中static關(guān)鍵字的用法

    這篇文章主要介紹了關(guān)于Java中static關(guān)鍵字的用法,static:意為靜態(tài)的,在?Java?里面作為靜態(tài)修飾符,可以理解為全局的意思,static?不僅可以修飾成員變量,成員方法,還可以修飾代碼塊,需要的朋友可以參考下
    2023-08-08
  • MybatisPlus關(guān)聯(lián)查詢的完美實現(xiàn)方案

    MybatisPlus關(guān)聯(lián)查詢的完美實現(xiàn)方案

    我們在項目開發(fā)的時候,難免會遇到連表查詢的操作,所以下面這篇文章主要給大家介紹了關(guān)于MybatisPlus關(guān)聯(lián)查詢的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • Java反射機制詳解

    Java反射機制詳解

    這篇文章主要介紹了Java反射機制,首先簡單介紹了反射機制的預備知識,進一步分析了Java反射機制的原理、實現(xiàn)技巧與應(yīng)用方法,需要的朋友可以參考下
    2015-12-12
  • Java如何處理數(shù)據(jù)成為樹狀結(jié)構(gòu)

    Java如何處理數(shù)據(jù)成為樹狀結(jié)構(gòu)

    這篇文章主要介紹了Java如何處理數(shù)據(jù)成為樹狀結(jié)構(gòu)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 總結(jié)Java對象被序列化的兩種方法

    總結(jié)Java對象被序列化的兩種方法

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java對象被序列化的兩種方法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • springboot讀取application.yml報錯問題及解決

    springboot讀取application.yml報錯問題及解決

    這篇文章主要介紹了springboot讀取application.yml報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java 動態(tài)生成bean的案例

    java 動態(tài)生成bean的案例

    這篇文章主要介紹了java 動態(tài)生成bean的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評論