实现输出字符串的长度,容量(容量不够则扩容),及内容

import java.util.Arrays;

public class MyStringBuilderDemo {
//任务:存储字符串并输出长度及容量
public static void main(String[] args) {
// TODO Auto-generated method stub
MyStringBuilder msb = new MyStringBuilder();
msb.append("hello").append(",java").append("1234567");
System.out.println("字符串长度:"+msb.length());
System.out.println("字符串容量:"+msb.capacity());
System.out.println("输出字符串:"+msb.toString());
} } class MyStringBuilder{
private char[] value;//字符串的值
private int count;//字符串的长度
public int length() {
return count;
}
public int capacity() {
return value.length;
} public MyStringBuilder(){//默认给定数组容量为16
value = new char[16];
}
public MyStringBuilder(int capacity){//默认给定数组容量为16
value = new char[capacity];
} //追加字符串
public MyStringBuilder append(String str) {
int len = str.length();
addength(count+len);
//追加字符串 追加的字符串.getChars(追加字符串的起始位置,结束为止,目标字符串,开始写入的位置)
str.getChars(0, str.length(), value, count);
count+=len;
return this;
}
private void addength(int capacity) {//防止字符串长度不够,扩容数组
if(capacity -value.length>0) {
int newlength;
newlength = value.length*2+2;
value = Arrays.copyOf(value, newlength);
}
}
//输出字符串
public String toString() {
return new String(value,0,count);
}
}

java StringBuilder案例的更多相关文章

  1. JAVA实用案例之水印开发

    写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...

  2. JAVA实用案例之图片水印开发

    写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...

  3. JAVA实用案例之文件导出(JasperReport踩坑实录)

    写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...

  4. Java 实验案例(多态)

    实验任务 任务一:图形面积周长计算小程序 任务二:饲养员喂养动物程序 实验内容: 任务一: 图形面积周长计算 任务目的: 掌握多态的含义及应用场合 掌握上转型对象和多态的实现 掌握abstract关键 ...

  5. Java小案例-(逃离迷宫)

    Java小案例-(逃离迷宫) 一,迷宫需求描述: 1,用户输入迷宫图(限制方形):字母1位墙,0为通,e为出口,m为入口,*为已访问的位置,用外围1围住迷宫 2,运行轨迹右,左,下,上 3,判断该迷宫 ...

  6. Java小案例(行星移动)

    Java小案例 行星移动:参考:三百集 使用软件:idea2017,java 1,图片集:这里  (idea图片源放在target目录下,才能访问到),建议从小往上看... 2,定义MyFrame p ...

  7. Java项目案例之--封装的实例

    Java项目案例之---封装的实例 有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:J001,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值 有一个学生 ...

  8. jwt 0.9.0(三)jwt客户端存储状态可行性分析,及Java代码案例

    Jwt客户端存储状态可行性分析 1.前端首次访问后台,后台生成token,放在http header的Authorization里(官网推荐,可解决跨域cookie跨域问题),并且Authorizat ...

  9. Java StringBuilder 高性能用法总结

    StringBuilder 误解: 1. Java编译优化后+和StringBuilder的效果一样: 2. StringBuilder不是线程安全的,为了"安全"起见最好还是用S ...

随机推荐

  1. Facebook回应追踪无账号用户:源于网站插件漏洞

    近日,比利时隐私独立委员一项调查披露Facebook跟踪收集大量网站用户的上网足迹,同时触及那些没有注册Facebook账号的访客. 对此,Facebook公司回应这些恶劣跟踪行为在于社交媒体在安装插 ...

  2. 数据库导出Excel(转载)

    来源:https://jingyan.baidu.com/article/3065b3b68f2ab7becef8a449.html SQLServer2005或者SQLServer2008.SQLS ...

  3. 一:idea中使用eclipse主题快捷键

    idea -->file -->import settings -->keymap-shkstart.jar 1 执行(run) alt+r 2 提示补全 (Class Name C ...

  4. Java代理(二)

    前面说到了java的静态代理,这次来看看动态代理. 假设有如下接口和实现方法: package proxy; public interface Subject { public void reques ...

  5. ASP.NET Core 2 学习笔记(十)视图

    ASP.NET Core MVC中的Views是负责网页显示,将数据一并渲染至UI包含HTML.CSS等.并能痛过Razor语法在*.cshtml中写渲染画面的程序逻辑.本篇将介绍ASP.NET Co ...

  6. 在vue中子组件修改props引发的对js深拷贝和浅拷贝的思考

    不管是react还是vue,父级组件与子组件的通信都是通过props来实现的,在vue中父组件的props遵循的是单向数据流,用官方的话说就是,父级的props的更新会向下流动到子组件中,反之则不行. ...

  7. drupal7 formAPI给元素加css样式

    比如,我定义了一个表单元素,名字叫做包库开始日期, $form['starttime_baoyue']=array( '#type'=>'textfield', '#title'=>t(' ...

  8. parseInt OR Number进行数字的转换

    在js中,字符串转为数字类型是比较常见的,平时用的比较多的是parseFloat和parseInt这两个方法.当然,除了这个方法之外还有一个Number:都是转为数字类型,有什么差别? 可以简单的说N ...

  9. Android内核漏洞利用技术实战:环境搭建&栈溢出实战

    前言 Android的内核采用的是 Linux 内核,所以在Android内核中进行漏洞利用其实和在 一般的 x86平台下的 linux 内核中进行利用差不多.主要区别在于 Android 下使用的是 ...

  10. 【转】虚拟机安装Ubuntu的上网设置(有线网络和无线网络)

    虚拟机下ubuntu共享方式上网: 一. 有线网络 在有线网络的条件下,vmware的安装非常简单,上网方式几乎不用怎么设置(默认NAT模式)    如果默认情况下不能上网,则按以下步骤尝试: *** ...