黑马程序员_07常用类String 、StringBuffer、File类以及递归调用

黑马程序员-软件测试-13阶段3-功能测试-21等价类划分,软件测试分类,瀑布模型,软件开发流程,测试用例的作用,测试用例的设计方法,等价类划分方法,qq账号需求分析,sina邮箱划分等价类 软件测试-黑马程序员 阅读详情
------- android培训、ios培训、期待与您交流! ----------
一、输出一个字符串中出现某个单词的次数(主要用到String类的方法)
public class TestString{
 public static void main(String args[]){
  String s="javascriptsfdsfsdjavasdfsdfsdfjavasfsdfdsfsdfsdfdsjavasdfsdfsdfsdsdfsdjava";
  String sToFind="java";
  int index=-1;
  int count=0;
  while((index=s.indexOf(sToFind))!=-1){
   s=s.substring (index+sToFind.length());
   count++;
  }
System.out.println(count);
 }
}
            //以上程序实现检察字符串出现某个单词的次数

String 创建一个不可变的字符序列
StringBuffer 创建一个可变的字符序列
StringBuffer的常用方法 append、insert、delete

二、Stringbuffer与StringBuilder的区别
        1、 java.lang.StringBuffer线程安全的可变字符序列。
        一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。  StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。 
        例如:如果 z 引用一个当前内容是“start”的字符串缓冲区对象
        则此方法调用 z.append("le") 会使字符串缓冲区包含“startle”;
        而 z.insert(4, "le") 将更改字符串缓冲区,使之包含“starlet”。 
        2、通常情况下,如果 sb 引用 StringBuilder 的一个实例,则 sb.append(x) 和 sb.insert(sb.length(), x) 具有相同的效果。
        只要发生有关源序列(如在源序列中追加或插入)的操作,该类就只在执行此操作的字符串缓冲区上而不是在源上实现同步。 
        每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该 优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。  
        3、 java.lang.StringBuilder一个可变的字符序列, 用于多个线程是不安全的。
        此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类, 因为在大多数实现中,它(StringBuilder)比 StringBuffer 要快。 在 StringBuilder 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串生成器中。append 方法始终将这些字符添加到生成器的末端;而 insert 方法则在指定的点添加字符。 
         例如:如果 z 引用一个当前内容为“start”的字符串生成器对象,则该方法调用 z.append("le") 将使字符串生成器包含“startle”,而 z.insert(4, "le") 将更改字符串生成器,使之包含“starlet”。 (这一点实现起来与StringBuilder类似)
       通常,如果 sb 引用 StringBuilder 的实例,则 sb.append(x) 和 sb.insert(sb.length(), x) 具有相同的效果。 每个字符串生成器都有一定的容量。只要字符串生成器所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区。如果内部缓冲区溢出,则此容量自动增大。  将 StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用 StringBuffer。

三、File类以及递归调用
//采用递归方法列出指定文件夹文件及目录
import java.io.*;
public class FileList{
 public static void main(String args[]){
//File.separtor 在windows底下为“\”,在linux底下为“/”。File.separatorPath 为“;”
  File f=new File("e:"+File.separator+"java"+File.separator+"day01");  
  System.out.println(f.getName());
//这里的递归方法的参数非常重要,可以以层级的形式显示目录与文件   ————————①  
fileList(f,1);
}
 public static void fileList(File f,int level){
  File[] files=f.listFiles();
   String prefix=" ";                  ————————①
  for(int i=0;i<level;i++){
   prefix+=" ";
  }
  for(int i=0;i<files.length;i++){
   System.out.println(prefix+files[i].getName());   // ————————①
   if(files[i].isDirectory()){
/*
这里level++ 与level+1,貌似是相等的,其实不同,在于最后一个层级时,level的值先参与预算在自增,这就会导致层级显示出现问题,不会缩进显示 
*/
    fileList(files[i],level+1); 
   }
  }
 }
}
激光三角测量法:斜射与直射式技术的原理与应用解析 本文深入解析激光三角测量法中斜射式与直射式技术的原理、应用及对比。斜射式适用于高精度小范围测量,尤其擅长处理反光表面;直射式则适合大范围位移检测,结构更简单。文章详细介绍了两种技术的光路分析、数学建模、应用场景及选型建议,并探讨了系统校准与误差分析方法,为工业检测领域提供实用参考。 阅读详情

相关推荐

避开这5个坑!Tushare数据获取与清洗的常见问题解决方案

本文详细解析了使用Tushare进行金融数据分析时常见的5大问题,包括Token失效、数据缺失、频率限制等,并提供了Python实战解决方案。通过智能填充策略、队列化管理和分层存储设计,帮助开发者高效获取和清洗金融数据,提升量化分析效率。特别适合金融数据分析师和Python开发者参考。

f9g0h的博客 421

JavaSE常用类之StringBuilder 和 StringBuffer以及File类

StringBuilder 和 StringBuffer以及File类的说明及实例

weixin_54438185的博客 796

SVM-支持向量机学习(1):线性可分SVM的基本型

1. foreword先看的是李航老师的书第7章,比较传统按照以下三节展开: 线性可分SVM 线性SVM 非线性SVM SMO算法 李航老师讲东西向来不拖泥带水,但本节也几乎用了40页的篇幅,足见涉及内容之多。7月底硬着头皮啃了下来,边看边在笔记上摘抄标注,花了2天时间对SVM有了基本认识。一个月过去了,如今重新整理为博客,再看轻松许多,并不断对比西瓜书的内容,启望达到融会贯通。西瓜书此节明显节奏轻

鸟恋旧林的博客 8680

黑马程序员_06常用类String 、StringBuffer、File类以及递归调用

一、输出一个字符串中出现某个单词的次数(主要用到String类的方法) public class TestString{  public static void main(String args[]){   String s="javascriptsfdsfsdjavasdfsdfsdfjavasfsdfdsfsdfsdfdsjavasdfsdfsdfsdsdfsdjav

besidescrazy的专栏 560

51单片机STC8G1K08驱动ws2812记录

使用51单片机控制17个2812灯,这里选择STC8芯片,最大频率可以达到35M,参考网上的各种文章案例,使用定时器做的时候实测做不到规格书要求的245-345ns,STC8G1K08不带PWM,所以只能使用nop来做,好在单片机在这里只有做编程灯的功能,省略测试过程,下面是程序,使用的是24MHz内部晶振 //设置一个灯珠 void SendOnePix(unsigned char *ptr) { unsigned char i,j; unsigned char temp; fo...

的博客 7320

PVE 8.0 保姆级换源教程:从Debian到LXC仓库,一次搞定国内镜像(附弹窗去除)

本文提供PVE 8.0保姆级换源教程,涵盖从Debian基础源到LXC仓库的国内镜像配置,并附赠去除订阅弹窗的实用技巧。通过详细步骤和命令示例,帮助用户快速优化ProxmoxVE环境,提升下载速度并消除干扰提示,适用于虚拟化平台的高效管理。

weixin_33282146的博客 412

Java读取txt文件赋值到StringBuffer里

工具类如下: package org.csh.util; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.Reader; /** * 读取文件的工具类 * @author Administrator * 日期:2015年7月1

简单就是美 6155

SAP 打印输出中 `#` 字符替代日文汉字的根本原因与全面解决方案

只要认清设备类型 / 字符集 / 字体三角关系,并合理利用PDFUCSWINCF或 UPE + URDT,LP01里那些恼人的就会彻底消失,日文汉字将在纸面与 PDF 中如预览一样完美呈现。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 815

stringbuffer常用方法_常用类的总结

包装类java是面向对象语言,但并不是“纯面向对象”的,八大基本数据类型就不是对象。但在实际应用中会经常将基本类型转换成对象,以便操作。为了解决这个不足,设计了和基本对象对应的包装类。这八个包装类除了Integer和Character,其他都是和基本数据类型一样,但首字母需大写另外除了Character和Boolean外,其他都属于“数字型”。数字型都属于java.lang.Number的子类。N...

weixin_39768247的博客 236

YOLOv8自定义训练:车牌识别全流程(从标注到推理,附可视化代码)

车牌检测全流程实践指南 摘要:本文详细介绍了基于YOLOv8的车牌检测完整实现方案。针对车牌检测中的三大难点(小目标、多角度、光照变化),提供了从数据准备到模型部署的全流程解决方案。重点包括:1)数据采集与标注规范;2)针对小目标的YOLOv8模型优化配置;3)K-means锚框聚类方法;4)训练参数调优策略。通过实际验证,该方法可获得95%以上的检测准确率,并附有完整的代码实现和可视化工具,便于开发者快速复现应用。 (字数:149字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 850

AIGC算法工程师面试八股文深度解析与进阶指南:揭秘Diffusion Models核心原理与实战技巧

总结来说,Cosine Noise Scheduler 的核心优势在于它能够更巧妙地平衡信号和噪声的比例,在扩散过程的早期阶段更长时间地保留原始图像的细节信息,从而为去噪模型提供一个更友好的学习环境,最终带来更优异的生成质量。🚀

FJN110的博客 345

String、StringBuffer、StringBudder区别

学习了String类和StringBuffer类,现在从三分面来总结一下String、StringBuffer、StringBudder三者的区别: 是否可变: String:底层利用字符数组保存字符串常量,是不可变的,因为String类的原码中有:private final char value[];因为有final修饰,所以String类的对象是不可改变的。所以每次修String对象的值时,实际

yajing8的博客 9170

【图论】系列(七)图论的中心性度量方法及重要性评价指标

图论中的中心性度量方法是用来衡量图中各个节点(或顶点)相对重要性的指标。

qq_30066733的博客 1076

Java零基础学习路径:从语法到算法与面试题的实战指南

Java作为一门面向对象的编程语言,其核心在于通过类与对象的概念来组织代码,实现封装、继承和多态等特性,从而构建可维护、可扩展的软件系统。理解Java基础语法和面向对象原理是掌握后端开发技术的基石,这不仅能提升代码质量,也是应对企业级应用开发挑战的关键。在工程实践中,扎实的Java基础能力直接关联到算法解题效率和面试表现,尤其对于初学者和求职者而言,将理论学习与实战练习结合至关重要。通过系统学习Java语法,并结合力扣(LeetCode)算法题库与斯坦福大学经典练习题进行针对性训练,可以有效构建从入门到求职

weixin_34302798的博客 581

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java的API

1.字符串—String charAt()—(char类型)–获取给定位置的对应字符 indexOf()—(int类型)–获取给定字符串在当前的位置,若当前字符串没有给定字符串,返回-1 lastIndexOf()----获取给定字符串在当前查找的字符串最后的位置 length()—(int类型)–获取当前字符串的长度 startsWith()—(boolean类型)–判断字符串是否是以,给定的...

优快云1782747395的博客 788

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java中的String,StringBuilder和StringBuffer。

String,StringBuilder和StringBuffer。 速度 String字符串常量 StringBuffer字符串变量(线程安全) StringBuilder字符串变量(非线程安全) 简单的说,String类型与StringBuffer类型及StringBuild...

递归算法解决汉诺塔,真值表等问题总结整理 444

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

String、StringBuffer与StringBuilder之间区别

String StringBuffer StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间 StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区...

itchuxuezhe_yang的专栏 35万+

StringBuffer踩坑记录

yaml配置注入一个参数 @Value("${report.root-directory}") private StringBuffer rootDirectory; // 错误写法 //StringBuffer filePath = rootDirectory // 正确写法 StringBuffer filePath = new StringBuffer(rootDirectory); filePath.append("/"); 使用上面的方式使两个引用指向同一个内存地址,修改fil

weixin_45853783的博客 250

常用类(Object,Scanner,String,StringBuffer),递归

一.ObjectObject类是类层次的根类,每个类都使用Object类作为超类(父类),所有类都使用该类中的方法(包括数组) 1.构造方法 2.方法 (1).hashCode();public int hashCode() {//返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。 } (2).equalspublic boo

TU_BO的博客 515

FILE类型转换成String的方法

 File file = new File(filePath);         if(!file.exists()) return null;         /* 取得扩展名 */   String end=file.getName().substring(file.getName().lastIndexOf(".") + 1,file.getName().length()).toLow...

fan380485838的专栏 2万+

常用黑盒测试用例设计方法-等价类划分法

    等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。 等价类:某个输入域的集合,在这个集合中每个输入条件都是等效的,如果其中一个的输入不能导致问题发生,那么集合中其他输入条件进行测试也不可能发生错误。 有效等价类:有效等价类是程序规格说明有意义,合理的输入数据 无效等价类:无效等价类是程序规格说明无意义,不合理的输入数据 一、 等价类划分原则 如果输入条件规定了取值范围或值的个

weixin_43833100的博客 2130

写StringBuffer到文件

<br />/* * 将结果写入文件 */ private static void createFile(File file, StringBuffer buffer) { try { File newFile = new File(file.getAbsolutePath() + ".txt"); if (newFile.exists())// 存在,则删除 if (!newFile.delete())// 删除成功则创建 { Syst

宝宝 7789

java StringBuffer读写文件

java StringBuffer读写文件 StringBuffer的优势 较String:String每更新一次就会new一个新的对象出来,更新次数上去之后,内存开销太大。而StringBuffer类型在更新(.append等操作)的过程中始终只有一个对象,开销大大减小。 较StringBuilder:StringBuilder和StringBuffer类拥有的成员属...

967

String,StringBuffer与StringBuilder的区别??

String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字

Java天空 80万+

Java之IO流---字节流,字符流,buffer,file

1.概述1.1 IO流的引入 IO流在很多语言已有体现,诸如C语言的stdio.h,C++中的iostream。Java中的IO流大抵是用于在控制台、磁盘、内存上进行数据的读写操作,完成数据的传递。我们可以对它进行如下分类:按处理的数据类型可分为字节流(byte)与字符流(char)按流的流向可分为输入流(in)与输出流(out)按流的功能可分为节点流(Node)和过滤流(Filter)本篇侧重...

Mojito Blogs 3016

java基础之常用类—File类和String类(重点)

(一)String类 继续

qq30211478的博客 3099
上一篇: 黑马程序员_06常用类String 、StringBuffer、File类以及递归调用
下一篇: 黑马程序员_08HashSet实例
孔子云
博客等级 码龄15年 1粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值