stringbuilder

stringbuilder

大城市里の小女人 提交于 2020-01-26 02:21:10
String和StringBuffer大的区别在于:String的内容无法修改,而StringBuffer的内容可以修改。频繁修改字符串的 情况考虑使用StingBuffer。 StringBuilder 类 线程不安全 效率高 StringBuffer类 线程安全 效率低 1,他们的属性是一个可变的字符数组,默认长度为16 2,如果存的字符串长度大于字符数组长度,会自动扩容为原来的长度的2倍加2, 3,append(“aa”) 累加 返回this 实现方法链 4,delete(from,to)删除从[from,to) 5,replace(from,to,str) [from,to) 把from到to的字符串替换为str; 6,reverse() 反转 7,inserst(index,str)插入 面试题:请解释String、StringBuffer、StringBuilder的区别: String的内容不可修改,StringBuffer与StringBuilder的内容可以修改. StringBuffer与StringBuilder大部分功能是相似的 StringBuffer采用同步处理,属于线程安全操作;而StringBuilder采用异步处理,属于线程不安全操作 来源: CSDN 作者: ailinyingai 链接: https://blog.csdn.net/ailinyingai

String与StringBuilder的相互转化

北城以北 提交于 2020-01-25 10:49:40
Stringbuider------>String public String toString()方法 举例如下: StringBuilder sb = new StringBuilder(); sb.append("hello").append("world"); String s = sb.toString(); System.out.println(s); String------->StringBuilder 使用构造方法: 举例如下: String s = "hello,world"; StringBiulder sb = new StringBuilder(s); System.out.println(sb); 来源: CSDN 作者: UPUPUUP 链接: https://blog.csdn.net/qq_39409781/article/details/103787245

Java StringBuilder、基本类型的包装类

浪尽此生 提交于 2020-01-24 13:11:00
字符串的缓冲区StringBuilder 1、介绍   1、StringBuilder是一个可变的字符序列,好像是一个容器,因为在类中提供了修改私有成员变量的方法。   常用的方法是append和insert,就是在StringBuilder对象本身上,进行修改操作。   2、StringBuilder底层和String底层都是维护了一个字符数组,数组本身私有的,因为String类型没有向外暴露修改私有成 员的方法,所以不能修改,StringBuilder向外暴露了修改私有成员的方法,可以修改字符序列。   3、StringBuilder和String都是用来描述字符串。   4、String不可修改,长度也不可以改变   5、StringBuilder可修改,长度也可以修改,比较灵活。 2、 StringBuilder的构造方法   StringBuilder():创建一个容器,初始容量为16   StringBuilder(String str):创建了一个容器,初始空量为16+str.length()   StringBuilder(int capacity):创建了一个容器,初始容量为capacity   capacity():获取当前容器的大小   length():获取当前容器中的字符个数   自动扩容 3、添加功能   1.append(任意类型):可以将任意数据类型

华为机试-人民币转换

流过昼夜 提交于 2020-01-23 19:17:00
题目描述 考试题目和要点: 1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分) 2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分) 3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“0”时,中文大写金额中间只写一个“零”字,如¥6007.14,应写成“人民币陆仟零柒元壹角肆分“。( 输入描述: 输入一个double数 输出描述: 输出人民币格式 示例1 输入 151121.15 输出 人民币拾伍万壹仟壹佰贰拾壹元壹角伍分Java程序代码 import java.util.Scanner; /** * 人民币转换 * * @author LiJian * */ public class Main { static char[] danWei = { '亿', '万', '仟', '佰', '拾', '元', '角', '分' }; static char[] number = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; public static void main(String[]

Use StringBuilder to pad String with blank spaces or other characters

烈酒焚心 提交于 2020-01-22 17:28:46
问题 I'm a beginner to java and this is my first post on Stackoverflow. Although my initial code is similar to other posts here, my question relates to implementing StringBuilder and so the reason for this post. I've created a method **Initial code** private static String padAgain(String result,int padNum) { String str = ""; for(int i = padNum; i >= 0; i--) { str = String.format("%" + padNum + "s", result).replace(" ", "*"); } return str; } to left pad the string with blank spaces (or special

C#读取cpu硬盘内存等信息

放肆的年华 提交于 2020-01-22 08:56:17
/// <summary> /// 获取硬盘号和CPU号 /// </summary> public class MachineNumber { static Dictionary<string, ManagementObjectCollection> WmiDict = new Dictionary<string, ManagementObjectCollection>(); static MachineNumber() { var names = Enum.GetNames(typeof(WmiType)); foreach (string name in names) { WmiDict.Add(name, new ManagementObjectSearcher("SELECT * FROM " + name).Get()); } } /// <summary> /// 获取硬盘号码 /// </summary> /// <returns></returns> public static string GetHardDiskNumber() { var query = WmiDict[WmiType.Win32_LogicalDisk.ToString()]; //var collection = query.Get(); string result = string

Java中的String,StringBuilder,StringBuffer三者的区别

时光怂恿深爱的人放手 提交于 2020-01-22 02:49:41
  这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 首先说运行速度,或者说是执行速度, 在这方面运行速度快慢为:StringBuilder > StringBuffer > String   String最慢的原因:   String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。 以下面一段代码为例: String str="abc"; System.out.println(str); str=str+"de"; System.out.println(str);   如果运行这段代码会发现先输出“abc”,然后又输出“abcde”,好像是str这个对象被更改了,其实,这只是一种假象罢了,JVM对于这几行代码是这样处理的,首先创建一个String对象str,并把“abc”赋值给str,然后在第三行中,其实JVM又创建了一个新的对象也名为str,然后再把原来的str的值和“de”加起来再赋值给新的str,而原来的str就会被JVM的垃圾回收机制(GC)给回收掉了,所以,str实际上并没有被更改,也就是前面说的String对象一旦创建之后就不可更改了。所以,

How can I return a StringBuilder or other string buffer from a PInvoke native callback

这一生的挚爱 提交于 2020-01-21 05:42:50
问题 I would like a clean way to increase the size of a StringBuilder() as required for population by native code, the callback method below seems clean, but somehow we get a copy of the buffer instead of the actual buffer - I'm interested in explanations and solutions (preferably sticking to the callback type allocation as it would be nice and clean if only it could be made work). using System; using System.Runtime.InteropServices; using System.Text; namespace csharpapp { internal class Program {

Java中 StringBuffer 和 StringBuilder的使用和String类的区别和联系

妖精的绣舞 提交于 2020-01-20 16:37:39
首先来回顾下String类的特点: 任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指 向而已。 通常来讲String的操作比较简单,但是由于String的不可更改特性,为了方便字符串的修改,提供StringBuffer和 StringBuilder类。 StringBuffer 和 StringBuilder 大部分功能是相同的,主要介绍 StringBuffer。在String中使用" +" 来进行字符串连接,但是这个操作在StringBuffer类中需要更改为 append()方法 : String和StringBuffer大的区别在于: String的内容无法修改,而StringBuffer的内容可以修改 。频繁修改字符串的 情况考虑使用StingBuffer。 StringBuilder 类 线程不安全 效率高 StringBuffer类 线程安全 效率低 1,他们的属性是一个可变的字符数组,默认长度为16 2,如果存的字符串长度大于字符数组长度,会自动扩容为原来的长度的2倍加2, 3,append(“aa”) 累加 返回this 实现方法链 4,delete(from,to)删除从[from,to) 5,replace(from,to,str) [from,to) 把from到to的字符串替换为str; 6,reverse

[Java] String类深度解析

谁说我不能喝 提交于 2020-01-20 08:26:30
本文基于jdk1.8 概述 String这个类,在java的世界里无人不知无人不晓,并且其实现原理也一直在更新,知道的人多,真正掌握的不多,这篇博客会尽量深入的解析String类的方方面面。 从java的体系角度来讲,String类并不像Object类,Class类那样在一些关键技术以及特性,如继承,虚拟机类加载机制上发挥着重要作用。String对象是不可变的。String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象。 但是String类却仍然是非常常用的一个类,我们来看一下他是怎么实现的。 String类成员变量 在String类里面存储字符的数据结构定义如下: /** The value is used for character storage. */ private final char value[]; 首先这是一个 final 关键字修饰的变量,这是String对象不可变的原因所在。 其次可以看到,是一个char类型的数组。什么意思?就是说java里面一个字符串里的字符事实上是以数组的形式在保存,其中的每一个字符都是char类型的。同时使用final修饰,意味着是不可变的。 那么char是个什么东西呢?了解java基础的朋友应该知道,char是java的基本数据类型之一。Java语言提供了八种基本类型。六种数字类型(四个整数型