分享知识-快乐自己:关于 String 小案例
单个字符出现的次数:
/***
* 验证是否符合拆分条件
*
* @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 小案例的更多相关文章
- String小案例(**)、包装类型和普通数据类型的转换(拆装箱)
###String用法: package StringTest; /**功能: * 判断Java文件名是否正确,判断邮箱格式是否正确 * 其中:合法的文件名应该以.java结尾 * 合法的邮箱名至少包 ...
- [jQuery学习系列六]6-jQuery实际操作小案例
前言最后在这里po上jQuery的几个小案例. Jquery例子1_占位符使用需求: 点击第一个按钮后 自动去check 后面是否有按钮没有选中, 如有则提示错误消息. <html> &l ...
- 02SpringMvc_springmvc快速入门小案例(XML版本)
这篇文章中,我们要写一个入门案例,去整体了解整个SpringMVC. 先给出整个项目的结构图:
- SqlDependency缓存数据库表小案例
SqlDependency的简介: SqlDependency是outputcache网页缓存的一个参数,它的作用是指定缓存失效的数据库依赖项,可以具体到数据库和表. SqlDependency能解决 ...
- Session小案例------完成用户登录
Session小案例------完成用户登录 在项目开发中,用户登陆功能再平常只是啦,当用户完毕username和password校验后.进入主界面,须要在主界面中显示用户的信息,此时用ses ...
- MVC 小案例 -- 信息管理
前几次更新博客都是每次周日晚上到周一,这次是周一晚上开始写,肯定也是有原因的!那就是我的 Tomact 忽然报错,无法启动,错误信息如下!同时我的 win10 也崩了,重启之后连 WIFI 的标志也不 ...
- JSP +MySQL实现网站的登录与注册小案例
为了练手,我就自己试着做了一个网站的登录与注册的小案例.由于没有做美化处理,所以界面并不是很好看. 网站实现的功能如下: 用户首次注册功能 用户登录功能 项目目录展示: 下面我将会分模块展示 注册模块 ...
- 《java入门第一季》之Character类小案例
/* * Character 类在对象中包装一个基本类型 char 的值 * 此外,该类提供了几种方法,以确定字符的类别小写字母,数字,等等,并将字符从大写转换成小写,反之亦然 * */ 下面通 ...
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...
随机推荐
- bootstrap input 加了 disabled 后台竟然接受不到值
下午做了一个input 值需要不可改变.在input属性中加入了 disabled .在后台接受 var_dump($_POST); 竟然看不到值. <input type="t ...
- 05 linux下编译Memcached
一: linux下编译Memcached(1)先在linux上安装gcc,cmake,autoconf,libtool工具,以后会使用到. 安装命令为:yum install gcc make aut ...
- java实体类如果不重写toString方法,会如何?
先认识一下Object Object 类的 toString 方法 返回一个字符串,该字符串由类名(对象是该类的一个实例).at 标记符“@”和此对象哈希码的无符号十六进制表示组成.换句话说,该方法返 ...
- ubuntu 1204 安装mysql
检測本机是否有安装mysql sudo netstat -tap | grep mysql 运行上面的命令之后.看到 mysq 的socket 处于监听状态,说明有成功安装. 安装mysql sudo ...
- Linux下apache安装php
php 1.下载解压 cd /usr/local/src wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz tar zxvf php-5.6.9.ta ...
- 【智力题】IO——行测、笔试、面试中遇到的
昨天(05.23)下午去参加了明源软件的暑期实习宣讲+笔试,第一次听说这个行业,行业和笔试风格完全不一样啊,5道行测智力题+1个问答+ 斐波那契数列 + 洗牌算法(思想.流程图.代码),今年回来后线上 ...
- 解决不同浏览器创建不同 XMLHTTP 对象的问题
function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XML ...
- SDOI 2016 Round1 Day1
储能表 /* 引自zyz大佬的数学思想 */ #include<cstdio> #include<iostream> using namespace std; typedef ...
- 【BZOJ3640】JC的小苹果 概率DP+高斯消元
[BZOJ3640]JC的小苹果 Description 让我们继续JC和DZY的故事. “你是我的小丫小苹果,怎么爱你都不嫌多!” “点亮我生命的火,火火火火火!” 话说JC历经艰辛来到了城市B,但 ...
- POJ 1694 An Old Stone Game【递归+排序】
链接: http://poj.org/problem?id=1694 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27454#probl ...