单个字符出现的次数:

/***
* 验证是否符合拆分条件
*
* @param text
* 原字符串
* @param sub
* 判断条件
* @return
*/
public static int count(String text, String sub) {
int count = 0, start = 0;
while ((start = text.indexOf(sub, start)) >= 0) {
start += sub.length();
count++;
}
return count;
}

一刀切上式(事先补齐):

@Test
public void demo1() {
String a = "ab bc,cd,ef gh";
String result = ""; //保存结果
a += ","; //事先补齐 ab bc,cd,ef gh,
for (int i = 0; i < a.length(); i++) {
char c = a.charAt(i); //获取每一个字符
if (c == ' ' || c == ',') {
System.out.print(result);
result = "";
} else {
result += c;
}
}
}

一刀切下式(事后修正):

@Test
public void demo2() {
String b = "abcdefg"; //结果a,b,c,d,e,f,g
String result = "";
for (int i = 0; i < b.length(); i++) {
result += "," + b.charAt(i);//获取每一个字符
//,a,b,c,d,e,f,g
}
result = result.substring(1);
System.out.println(result);
}

字符串的常用API  (假设修正法)

@Test
public void demo3() {
String b = "abcdefgabcd"; //求字符串中是否有重复的字符
boolean flag = false; // 假设不重复
for (int i = 0; i < b.length(); i++) {
char c = b.charAt(i);//获取每一个字符
if (b.lastIndexOf(c) != i) {
flag = true; //重复
break;
}
}
}

字符串的常用API  (正则表达式)split

@Test
public void demo4() {
String a="a b c d e f g";
String [] str=a.split(" +"); //a.split(" {1,}");
for(String s:str){
System.out.print(s);
}
}

字符串替换

@Test
public void demoText1() {
String str = "a,A,b,c,d,G,h,-Z";
char[] chars = str.toCharArray();
for (int i = 0; i < str.length(); i++) {
int count = (int) chars[i];
if ((count >= 65 && count <= 90) || (count >= 97 && count <= 127)) {
System.out.print(chars[i]);
}
}
}

字符串中单个字符出现的次数

@Test
public void demoText2() {
String text = "wefawefaafickdbbjoasdfcweccwerqeasdaajfnblsdbboioe";
StringBuffer sb = new StringBuffer();
char[] chars = text.toCharArray();
Map<String, Integer> map = new HashMap<String, Integer>(); for (int i = 0; i < chars.length; i++) {
Pattern pattern = Pattern.compile("(" + chars[i] + ")");//正则表达式 匹配 aa或bb或bb
Matcher matcher = pattern.matcher(text);
String t = "";
while (matcher.find()) {
t += matcher.group();
}
map.put(t.substring(0, 1), Integer.valueOf(t.length()));
}
Set<Map.Entry<String, Integer>> entrys = map.entrySet();
for (Map.Entry<String, Integer> entry : entrys) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + "----" + value);
}
System.out.println("-----------------------------------------");
String a = "ab bc,cd,ef gh";
String result = ""; //保存结果
a += ","; //事先补齐 ab bc,cd,ef gh,
for (int i = 0; i < a.length(); i++) {
char c = a.charAt(i);
if ((c == ' ') || (c == ',')) {
System.out.print(result);
result = "";
} else {
result += c;
}
}
}

只输出英文字符

@Test
public void demoText3() {
String str1 = "ab *s-fh*-d-+bc,cd,ef gh";
char[] chars = str1.toCharArray();
for (int i = 0; i < str1.length(); i++) {
int count = (int) chars[i];
if ((count >= 65 && count >= 90) || (count >= 97 && count >= 127)) {
System.out.print(chars[i]);
}
}
}

任意进制转换首先将3进制转换为10进制,然后再把10进制转换5进制

@Test
public void demoText4() {
String num = "200110102"; // 3进制的数字转换成5进制的
int result = 0;
for (int i = 0; i < num.length(); i++) {
char c = num.charAt(i);
result = result * 3 + (c - '0');
}
System.out.println(result); //十进制 13457
String str = "";
while (true) {
if (result == 0) break;
str += result % 5;
result = result / 5;
}
System.out.println(str);
}

字符串和数字的转换

@Test
public void demoText5() {
String str = "6789"; //字符串 需要转换成数字 6789
int num = str.charAt(0) - '0'; //
num = num * 10 + str.charAt(1) - '0';
num = num * 10 + str.charAt(2) - '0';
num = num * 10 + str.charAt(3) - '0';
System.out.println(num);
System.out.println("------------------------------");
String str1 = "6789"; //字符串 需要转换成数字 6789
int result = 0;
for (int i = 0; i < str.length(); i++) {
result = result * 10 + str.charAt(i) - '0';
}
System.out.println(result);
}

枚举与剪枝 求位数需求:数字自身平方的尾数=自身 (100W以内)

@Test
public void demoText6() {
for (int a = 0; a <= 1000000; a++) {
//求a的平方
int num = a * a;
if (num % 10 == a || num % 100 == a || num % 1000 == a || num % 10000 == a || num % 100000 == a || num % 1000000 == a) {
System.out.println("数字本身是=》" + a + "数字的平方是=》" + num);
}
}
}

鸡兔同笼

/**
* 鸡兔同笼
* 鸡兔共50头,脚共120只!
* x+y=50;
* 2x+4y=120;
*/
@Test
public void demoText7() {
for (int x = 0; x <= 50; x++) {
int y = 50 - x; //得到兔子的数量
if (2 * x + 4 * y == 120) {
System.out.println(x);
System.out.print(y);
}
}
}

判断某个字符串是否满足我们定义的正则表达式

@Test
public void demoText8() {
String a = "ABC01234";
boolean matches = a.matches("[A-Z]{1,3}[0-9]{3,5}");//返回boolean
System.out.println(matches);
}

字符串的常用API (正则表达式)replaceAll()在小括号里面的内容我们称之为子组,用$获取子组内容

@Test
public void demoText9() {
String a = "asasasa 2018-07-16 sasa sasas sasa";
//实现的效果是asasasa 07/16/2018年 sasa sasas sasa
a = a.replaceAll("([0-9]{4})-([0-9]{2})-([0-9]{2})", "$2/$3/$1 年");
System.out.print(a);
}

文字正序输出,并显示字母出现次数

public static void main(String[] args) {
String str = "服微端云入加迎欢|welcome join us !";
int flag=0;
String str1=str.substring(0, 8);
String str2=str.substring(9);
StringBuffer sb1=new StringBuffer(str1);
sb1.reverse();
String newStr=sb1.append(str2).toString();
System.out.println(newStr);
for (int i = 0; i < str2.length(); i++) {
char letter=str2.charAt(i);
if (String.valueOf(letter).matches("^[a-zA-Z]$")) {
flag++;
}
}
System.out.println("英文字符有:"+flag+"个");
}

分享知识-快乐自己:关于 String 小案例的更多相关文章

  1. String小案例(**)、包装类型和普通数据类型的转换(拆装箱)

    ###String用法: package StringTest; /**功能: * 判断Java文件名是否正确,判断邮箱格式是否正确 * 其中:合法的文件名应该以.java结尾 * 合法的邮箱名至少包 ...

  2. [jQuery学习系列六]6-jQuery实际操作小案例

    前言最后在这里po上jQuery的几个小案例. Jquery例子1_占位符使用需求: 点击第一个按钮后 自动去check 后面是否有按钮没有选中, 如有则提示错误消息. <html> &l ...

  3. 02SpringMvc_springmvc快速入门小案例(XML版本)

    这篇文章中,我们要写一个入门案例,去整体了解整个SpringMVC. 先给出整个项目的结构图:

  4. SqlDependency缓存数据库表小案例

    SqlDependency的简介: SqlDependency是outputcache网页缓存的一个参数,它的作用是指定缓存失效的数据库依赖项,可以具体到数据库和表. SqlDependency能解决 ...

  5. Session小案例------完成用户登录

    Session小案例------完成用户登录     在项目开发中,用户登陆功能再平常只是啦,当用户完毕username和password校验后.进入主界面,须要在主界面中显示用户的信息,此时用ses ...

  6. MVC 小案例 -- 信息管理

    前几次更新博客都是每次周日晚上到周一,这次是周一晚上开始写,肯定也是有原因的!那就是我的 Tomact 忽然报错,无法启动,错误信息如下!同时我的 win10 也崩了,重启之后连 WIFI 的标志也不 ...

  7. JSP +MySQL实现网站的登录与注册小案例

    为了练手,我就自己试着做了一个网站的登录与注册的小案例.由于没有做美化处理,所以界面并不是很好看. 网站实现的功能如下: 用户首次注册功能 用户登录功能 项目目录展示: 下面我将会分模块展示 注册模块 ...

  8. 《java入门第一季》之Character类小案例

    /*  * Character 类在对象中包装一个基本类型 char 的值  * 此外,该类提供了几种方法,以确定字符的类别小写字母,数字,等等,并将字符从大写转换成小写,反之亦然  * */ 下面通 ...

  9. Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

    Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...

随机推荐

  1. member access within misaligned address 0x000000000031 for type 'struct ListNode', which requires 8 byte alignment

    在做LeetCode的two sum题目的时候,提交代码遇到了如题的runtime error,后来在一篇博客上看到了解决方法. 现有如下结构体: struct ListNode { int val; ...

  2. Ubuntu 18.04 初始化(server版本 )

    系统安装 ubuntu 18.04 英文版,创建个人用户 初始系统 a.修改ip shell> vim /etc/network/interfaces auto ens33 iface ens3 ...

  3. elk文件

    =================正则匹配 [root@web02 conf.d]# cat apache-grok.conf input{ file { path => "/var/ ...

  4. 【Mac + Pycharm】之实用东西以及配置东西

    一.新建.py文件时默认模板: 步骤:File => Preferences for New Projects => Editor => File and Code Template ...

  5. android 学习mvc 和 mvp 和 mvvm参考项目

    githup地址:https://github.com/ivacf/archi 阿尔奇 此存储库展示并比较可用于构建Android应用程序的不同架构模式.完全相同的示例应用程序使用以下方法构建三次: ...

  6. spring mvc数据验证

    今天来说一下.前段验证,与后端数据验证.大家都知道.在我们.注册与登陆的时候,往往需要对数据进行效验.那么前段我们都知道,可以使用,js去做处理. 今天主要讲解.后端的数据效验.这里我们采用Hiber ...

  7. 使用Highcharts实现柱状图展示

    第一步 新建页面line.html,引入HighCharts核心js文件 <script type="text/javascript" src="../../js/ ...

  8. 源码安装Apache,报错:Cannot use an external APR with the bundled APR-util

    一般在第一次源码安装是没有问题的,在版本变化情况下在次源码安装可能会遇到此问题: apache2.0.x与apache2.2.x在apr有很大区别,前者为依赖公用apr,后者依赖于自身的apr.一般前 ...

  9. 第4章 URL管理器和实现方法

    URL管理器:管理待抓取URL集合和已抓取URL集合 -- 防止重复抓取.防止循环抓取 URL需要支持哪些功能: 添加新URL到待爬取集合中.判断待添加URL是否在容器中,判断是否还有待爬取URL,获 ...

  10. 如何通过git客户端上传项目到github上

    参考地址: 1.http://1ke.co/course/194 2.https://github.com/wohugb/git-reference/blob/master/Git-on-the-Se ...