1》统计不同类型字符个数
public static void main(String[] args) {
//案例:统计不同类型字符个数
String password = "abZZc23&%Asd^4"; //密码:大写,小写,数字,特殊字符 //1.声明变量
int big = 0;//大写
int small = 0;//小写
int num = 0;//数字
int other = 0;//特殊字符 //2.遍历字符串的字符
for(int i=0; i < password.length();i++){
//取字符
char ch = password.charAt(i);
System.out.println(ch); //判断字符是否为大写
if(ch >= 'A' && ch <='Z'){
big ++;
}else if(ch >= 'a' && ch <= 'z'){//判断是否为小写
small ++;
}else if(ch >= '0' && ch <= '9'){//判断是否为数字
//'0' 对应码表的数字是48
//'9' 对应码表的数字是57
num ++;
}else{//特殊字符
other ++;
}
} System.out.println("大写字母出现的次数:" + big);
System.out.println("小写字母出现的次数:" + small);
System.out.println("数字出现的次数:" + num);
System.out.println("特殊字符出现的次数:" + other);
}

  

2》String类转换功能

byte[] getBytes():把字符串转换为字节数组
char[] toCharArray():把字符串转换为字符数组
static String valueOf(char[] chs):把字符数组转成字符串
static String valueOf(int i):把int类型的数据转成字符串
注意:String类的valueOf方法可以把任意类型的数据转成字符串
String toLowerCase():把字符串转成小写
String toUpperCase():把字符串转成大写
String concat(String str):把字符串拼接,且只能拼接字符串。+方式拼接字符串时,可以是任意类型

3》 案例 将一个字符串的首字母 变成大写,其余的字母小写

/*
* 需求:把一个字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)
* 举例:
* helloWORLD
* 结果:
* Helloworld
*
* 分析:
* A:先获取第一个字符
* B:获取除了第一个字符以外的字符
* C:把A转成大写
* D:把B转成小写
* E:C拼接D
*/
public class StringTest { public static void main(String[] args) {
// 定义一个字符串
String s = "helloWORLD"; // 先获取第一个字符
String s1 = s.substring(0, 1);
// 获取除了第一个字符以外的字符
String s2 = s.substring(1);
// 把A转成大写
String s3 = s1.toUpperCase();
// 把B转成小写
String s4 = s2.toLowerCase();
// C拼接D
String s5 = s3.concat(s4);
System.out.println(s5); // 优化后的代码
// 链式编程
String result = s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase());
System.out.println(result); }
}

 

4》案例:把int[] arr = {1,2,3} 转成字符串 [1,2,3]

  思路:字符串拼接  首先 新建一个字符串 然后加上  '['  ,循环便利这个数组,然后拼接 字符串,最后判断是否是最后一个,加上 ‘]’

5》String类的其它功能
public String replace(char oldChar, char newChar)//替换字符
public String replace(CharSequence target, CharSequence replacement) //替换字符串
String trim();//去除前后空格
public int compareTo(String anotherString) //比较
public int compareToIgnoreCase(String str) //比较

例子:
String s1= "abc";
String s2 = "aac"
s1.compareTo(s2):结果+1

6》案例:字符串的反转
String str = "abc";
for(int i = str.length() - 1;i >= 0 ;i--){
System.out.print(str.charAt(i));
}

7》案例:统计大串中小串出现的次数
String str = "helgyfnnnngyfooogyf88";
String name = "gyf";

思路:使用死循环,将匹配道德字符串位置加上匹配子串的长度 ,截取,使用统计变量  统计出现次数

8》StringBuffer的构造方法
    >StringBuffer 字符串缓冲区类
    >StringBuffer里面的字符序列【char[]】是可以改变的
    >String的字符序列是不可以改变

9》StringBuffere的添加方法
    >append方法
    >insert方法

10》StringBuffer的删除方法
    >deleteCharAt(int index) 删除指定索引的字符
    >delete(int start,int end): 删除开始到结束位置的字符

11》StringBuffer的反转功能
    >reverse()方法,将字符串反转

12》StringBuffer的截取功能
    >public String substring(int start): 从指定位置截取到末尾

    >public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置

13》StringBuffer与String的相互转换
    String –> StringBuffer
        通过构造方法
        通过append()方法
    StringBuffer -> String
    通过构造方法
    通过toString()方法
    通过subString(star,end);

14》数组转成字符串,使用StringBuffer实现
    int[] arr = {1,2,3} -> [1,2,3]

    思路:循环便利这个数组,然后使用StringBuffer 的append方法来拼接这个字符串  使用if else 判断添加的位置

15》字符串反转,使用StringBuffere的reverse方法实现

16》两首字符串的面试题:
    a>StringBuffer和StringBuilder的区别
    StringBuffer是jdk1.0版本的,是线程安全的,效率低,加同步锁
    StringBuilder是jdk1.5版本的,是线程不安全的,效率高,没有加锁

    b>String 和StringBuffer,StringBuilder的区别
    String是一个不可变的字符序列
    StringBuffer,StringBuilder是可变的字符序列

String、StringBuffer 的使用 ,两个面试问题的更多相关文章

  1. [置顶] String StringBuffer StringBuilder的区别剖析

    这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...

  2. String,StringBuffer,StringBuilder的区别及其源码分析

    String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而 ...

  3. String,StringBuffer,StringBulider

    StringBuffer.StringBuilder.String中都实现了CharSequence接口. CharSequence是一个定义字符串操作的接口,它只包括length().charAt( ...

  4. 关于String StringBuffer StringBuilder

    0. String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...

  5. String,StringBuffer和StringBuilder源码解析[基于JDK6]

    最近指导几位新人,学习了一下String,StringBuffer和StringBuilder类,从反馈的结果来看,总体感觉学习的深度不够,没有读出东西.其实,JDK的源码是越读越有味的.下面总结一下 ...

  6. String StringBuffer StringBuilder (转)

    转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...

  7. String,StringBuffer与StringBuilder差异??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要地, String 类型和 StringBuffer 类型的主要性能差 ...

  8. 【Java基础】String StringBuffer StringBuilder

    String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...

  9. ES6学习:两个面试题目--关于模板字符串

    号称看完就能“让开发飞起来”,不过文中的两个面试题目的知识点并没包括在文中. https://www.jianshu.com/p/287e0bb867ae 文中并没有完整的知识点去完成上面的两道题,这 ...

随机推荐

  1. uvalive 5731 Qin Shi Huang’s National Road System

    题意: 秦始皇要修路使得所有的城市连起来,并且花费最少:有一个人,叫徐福,他可以修一条魔法路,不花费任何的钱与劳动力. 秦始皇想让修路的费用最少,但是徐福想要受益的人最多,所以他们经过协商,决定让 A ...

  2. eclipse更换workspace需要重新设置的内容

    .jdk Window-->java-->Installed JREs,新增或修改你所需要的jdk版本,点击需要的jdk-->edit 在Default VM arguments里面 ...

  3. 【2017-2-19】C#数据类型,数据转换,变量,常量,转义符

    数据类型 一.基本数据类型 1.值类型(不可以为null) ⑴整型(可以为负数) byle,int,short,long(从小到大排列) 常用整型 int a=值(小于10位数) long b=值(1 ...

  4. Redis的key和value大小限制

    Redis的key和value大小限制        今天研究了下将java bean序列化到redis中存储起来,突然脑袋灵光一闪,对象大小会不会超过redis限制?不管怎么着,还是搞清楚一下比较好 ...

  5. python内置函数bin

    bin() 返回一个整数 int 或者长整数 long int 的二进制表示. 代码示例: print(bin(10)) 运行结果: F:\dev\python\python.exe F:/pyCha ...

  6. Linux基础命令---防火墙iptables

    iptables iptables指令用来设置Linux内核的ip过滤规则以及管理nat功能.iptables用于在Linux内核中设置.维护和检查IPv4数据包过滤规则表.可以定义几个不同的表.每个 ...

  7. golang学习笔记6 beego项目路由设置

    golang学习笔记5 beego项目路由设置 前面我们已经创建了 beego 项目,而且我们也看到它已经运行起来了,那么是如何运行起来的呢?让我们从入口文件先分析起来吧: package main ...

  8. bzoj4443 小凸玩矩阵

    题目链接 二分+最大check #include<algorithm> #include<iostream> #include<cstdlib> #include& ...

  9. python 关键字yield解析

    python 关键字yield解析 yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator.y ...

  10. Autel MaxiSys Elite Diagnostic Tool Common problem solving methods

    1. updating MaxiFlash Elite to firmware 3.21? My maxisys communicate with the MaxiFlash J2534 but Ma ...