- 浏览: 1592265 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
字符串
字符串的练习
/** * String 类适用描述字符串事物 * 那么他提供了多个方法对字符串进行操作 * * 常见的操作有那些呢? * "abc" * * 1.获取 * 1.1 字符串中的包含的字符数,也就是字符串的长度 * int length() :获取 长度 * 1.2 根据位置获取位置上的某个字符 * char charAt(int index); * 1.3 根据字符 获取字符在 字符串中第一次出现的位置 * int indexOf(int ch); //接受的 ASCII码 * int indexOf(int ch,int fromIndex);//从fromIndex指定位置开始,获取ch 在字符串中出现的位置 * * int indexOf(String str); 返回的是str在字符串中第一初相的位置 * int indexOf(String ch,int fromIndex);//从fromIndex指定位置开始,获取ch 在字符串中出现的位置 * int lastIndexOf(String ch,int fromIndex);//从fromIndex指定位置开始,获取ch 在字符串中出现的位置 * int codePointAt(int index) 返回指定索引处的字符(Unicode 代码点)。 * int codePointBefore(int index) codePointBefore(int index) * int codePointCount(int beginIndex, int endIndex) 返回此 String 的指定文本范围中的 Unicode 代码点数。 * * 2.判断 * 2.1 字符串中是否包含某一子字符串 * boolean contains(str); * indexOf(str) 功能都可以实现 * 2.2 字符串是否有内容 * boolean isEmpty(); 原理就是判断 长度是否为0 * 2.3 字符串是否以指定内容开头 * boolean startsWith(str) * 2.4 字符串是否 以制定内容结尾 * boolean endsWith(str) * 2.5 判断字符内容是否相同 复写了Object类中的equals 方法 * boolean equals(); * 2.6 判断内容是否相同,并忽略大小写. * boolean equalsIgnoreCase(); * * 3.转换 * 3.1 将字符数组转成字符串 * 构造函数 String (char[]) * String (char[],int offset,count); 将字符数组中的一部分转成字符串 * 静态方法 * static String copyValueOf(char[]) * static copyValueOf(char[] data, int offset, int count) * static String valueOf(int); * 3.2 将字符串转成字符数组 * char[] toCharArray(); * * * 3.3 将字节数组转成字符串 * 构造函数 String (byte[]) * String (byte[],int offset,count); 将字节数组中的一部分转成字符串 * 3.4 将字符串转成 字节数组 * byte[] getBytes(); * 3.5 将基本类型数据转成字符串 * static String valueOf(int); * static Stirng valueOf(double); * * 特殊: 字符串和字节数组在转换的过程中,是可以指定编码表的 * * 4. 替换 * String replace(oldchar,new char); * Stirng replace(oldcharsequence,newcharsequence); * * 5.切割 * String[] split(regex); * * 6.子串,获取字符串中的一部分 * String substring(int begin); * String substring(int begin,int end); * 7.转换, 去除空格,比较 * 7.1 将字符串转换成大写或者小写 * String toUpperCase() * String toLowercase() * 7.2 将字字符串两端的多个空格去掉 * String trim() * 7.3 对字符串进行自然顺序的比较 * int compareTo this< param <0 this=param =0 this> param >0 * * */ public class StringDemo { public static void method_7(){ String s=" Hello java "; sop(s.toUpperCase()); sop(s.toLowerCase()); sop(s.trim()); } public static void method_subString(){ String s="hellojava"; sop(s.substring(2)); //从指定位置开始到结尾,如果角标不存在,会出现字符串角标越界异常 sop(s.substring(2,4));// 包含头,不包含尾 } public static void method_split(){ String s="zhangs,lisi,wangwu"; String[] names=s.split(","); for (String string : names) { sop(string); } } public static void method_replace(){ String s="hello java"; String s1=s.replace('q', 'n'); //如果替换的字符串在原字符串中不存在 ,则返回的还是原字符串 sop(s); sop(s1); String s2=s.replace("java", "word"); sop(s2); } public static void method_trans(){ char[] arr={'a','b','c','d','e','f','g'}; String s=new String(arr); sop("s="+s); s=new String(arr,1,3); // 1.是角标 3 是个数 sop("s="+s); sop(String.copyValueOf(arr)); sop(String.copyValueOf(arr,1,3)); /*sop(str); sop(str); sop(str); sop(str); sop(str);*/ } public static void method_is(){ String str="ArrayDemo.java"; sop(str.startsWith("Array")); sop(str.endsWith(".java")); sop(str.contains("Demo")); } public static void method_get(){ String str="abcdeakpf"; //长度 sop(str.length()); //根据索引获取字符 sop(str.charAt(4)); //当访问到字符从中不存在的角标的时候 会发生,StringIndexOfBoundsException. //根据字符获取索引 sop(str.indexOf('m',3));//当找不到 制定的字符的时候 返回-1 //反向索引一个字符出现的位置 sop(str.lastIndexOf('a')); //脚本还是从左边开始 标识, 只是从右边开始查找 //返回制定脚本上的ASCII码 sop(str.codePointAt(3)); // c 的ASCII //返回指定索引之前的字符的 SCAII嘛 sop(str.codePointBefore(3)); // b 的ASCII //指定文本范围中的 Unicode 代码点数。 sop(str.codePointCount(0,6)); } public static void sop(Object obj){ System.out.println(obj); } public static void main(String[] args) { String s1="abc";// s1是一个类类型的变量,"abc"是一个对象 "abc" 存在 常量池中 //字符串最大的特点,是一旦被初始化就不可以被改变 s1="kk"; System.out.println(s1); //只是 s1的指向 改变了 abc 这个对象 还是没有改变 String s2=new String("abc"); //new String() "abc" String s3="abc"; //由于常量池中有 abc 所以 不会再开辟空间来 新建对象 //s1和s2 有什么区别? //s1 代表一个对象 //s2代表 两个对象. System.out.println(s1=s2); //false System.out.println(s1.equals(s2));// true -->String 类复写了Object类中的equals方法 //该方法用于判断字符串是否相同 System.out.println(s1==s3); System.out.println("===================================="); method_get(); System.out.println("===================================="); method_trans(); System.out.println("===================================="); method_replace(); System.out.println("===================================="); method_subString(); System.out.println("===================================="); method_7(); } }
字符串的练习
/** * 字符串的练习 * 1.模拟一个trim方法.去掉字符串两端的空格. * 思路 * 1)判断字符串第一个位置是否为空格,如果是继续乡下判断,知道不是空格为止 * 结尾处判断空格也是如此 * 2)当开始和结束都判断到不是空格时,就是要获取的字符串. * * 2.将一个字符串进行反转,将字符串中指定的部分进行反转. * 思路 * 1)曾经学习过对数组的元素进行反转 * 2)将字符串编程数组,对数组反转 * 3)将反转后的数组变成字符串 * 4)只要将反转的部分的开始和结束位置作为参数传递即可 * * 3.获取一个字符串在另一个字符串中出现的次数 * 思路 * 1)定义个计数器 * 2)获取kk第一次出现的位置 * 3)从第一次出现的位置后剩余的字符串中继续获取kk出现的位置 * 每获取一次计数器加一 * 4)当获取不到十计数器完成 * * 4.两个字符串中最大相同子串,第一个动作,将短的那个串进行长度一次递减的子串打印. * "abcwerthelloyuiodef" * "cvhelloohnm" * 思路: * 1)将短的那个子串安装长度递减的凡是获取到. * 2)将每个获取到的子串去长串中判断是否包含.如果包含,已经找到! * */ public class StringDemo1 { public static void sop(String str){ System.out.println(str); } public static void main(String[] args) { String s=" Hello world "; String str="kkabkkcdHellokkefghkks"; sop(myTrim(s)); sop(reversString(s,7,13)); sop(reversString(s)); sop("count="+getSubCount(str,"kk")); sop("count====="+getSubCount2(str,"kk")); sop(getMaxSubString(str,"ssdHellokefghk")); } //练习四 public static String getMaxSubString(String s1,String s2){ String max="",min=""; max=s1.length()>s2.length()? s1:s2; min=max==s1?s2:s1; for(int x=0;x<min.length();x++){ for(int y=0,z=min.length()-x;z!=min.length()+1;y++,z++){ String temp=min.substring(y,z); if(max.contains(temp)) //s1.indexOf(temp)!=-1 return temp return temp; } } return ""; } //练习三,方三 public static int getSubCount3(String str,String key){ int count=0,index=0; while((index=str.indexOf(key,index))!=-1){ count++; index=index+key.length(); } return count; } public static int getSubCount2(String str,String key){ //不建议 使用这个 因为如果开头为 key 的话 就会出现有时候多一个情况 return str.split("kk").length; } //练习三,获取一个字符串在另一个字符串中出现的次数 public static int getSubCount(String str,String key){ int count=0; int index=0; while((index=str.indexOf(key))!=-1){ count++; str=str.substring(index+key.length()); } return count; } //练习二 ,将字符串反转 public static String reversString(String s,int start,int end){ //字符串编程数组 char[] chs=s.toCharArray(); //反转数组 revers(chs,start,end); //将数组编程字符串 return new String(chs); } public static String reversString(String s){ return reversString(s,0,s.length()); } private static void revers(char[] arr,int x,int y){ for(int start=x,end=y-1;start<end;start++,end--){ swap(arr,start,end); } } private static void swap(char[] arr,int start,int end){ char temp=arr[start]; arr[start]=arr[end]; arr[end]=temp; } //练习一,取出字符串两端空格. public static String myTrim(String str){ int start=0,end=str.length()-1; while(start<=end && str.charAt(start)==' ') start++; while(start<=end && str.charAt(end)==' ') end--; return str.substring(start,end+1); } }
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 1007public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2285经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5663package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 1006import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1057/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 1014//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1828更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1420import java.util.HashMap; ... -
java 读写锁
2016-08-03 23:46 820import java.util.Random; i ... -
java 多个线程之间同步通信
2016-08-02 17:16 2401import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 927// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1176import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 806import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1149import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3897import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 970/** *父子线程 交替打印10 次, 100次 ... -
java 线程同步
2016-08-01 16:43 1027import java.util.concurrent.l ... -
java多线程练习
2016-08-01 16:35 1843Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 1011/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2234package out; import ja ...
相关推荐
在第一部分“黑马程序员_毕向东_Java基础视频教程第13天-01-String(概述).avi”中,讲解了字符串的基础知识。字符串在Java中是不可变的对象,这意味着一旦创建,就不能改变其内容。它们是通过`String`类或`...
本节视频教程"Java基础视频教程第13天 string字符串02"深入探讨了Java中字符串对象的创建、常用方法以及一些核心特性。下面将详细解析这些知识点。 1. **字符串对象的创建** Java中的字符串是不可变的,这意味着...
本教程“Java基础视频教程第13天 string字符串03”深入探讨了Java中的字符串处理,特别是关于切割、替换、比较和去除空格的功能。以下是这些知识点的详细说明: 1. **字符串对象的创建与不可变性** 在Java中,字符...
在本教程"字符串1306"中,我们将深入学习Java中的字符串处理,特别是通过`StringBuffer`类来实现字符串的高效修改和管理。本教程对应于Java基础视频教程的第13天,由知名教育机构黑马程序员的讲师毕向东讲解。 首先...
在第13天的学习中,讲师毕向东深入讲解了字符串的操作和应用,特别是通过两个实践练习——字符串练习2和字符串练习3,来巩固学员对字符串的理解。 Java中的String类是不可变的,这意味着一旦创建了String对象,它的...
本节视频教程"Java基础视频教程第13天 string字符串07"深入探讨了Java中的字符串处理,特别是围绕基本数据类型与对象包装类之间的交互。 首先,字符串在Java中是不可变的,这意味着一旦创建了一个字符串对象,就不...
第12天:字符串王者地位 第13天:算法工具类包装类 第14天:正则及其他类 第15-18天:数组到集合 第19天:文件操作IO 第20、21天:IO流文件操作类图 第22天:其他流 第23天:多线程 第24天:多线程深入 第25天:GUI ...
在本套Java基础视频教程的第13天,主要讲解了字符串对象的使用,特别是`String`类以及与之相关的`StringBuffer`和`StringBuilder`类。以下是关于这些知识点的详细解释: 1. **String类**: - `String`是Java中的一...
【Java基础辅导班教程...总之,"黑马程序员_Java基础辅导班教程课件[第01期]第13天"是一个全面覆盖Java基础的教程,结合课堂内容、视频、源码和图解,为学员提供了丰富的学习资源,助力他们稳步迈进Java开发的世界。
1. **时间格式化**:首先需要将字符串形式的时间转换为`Date`对象,这通常需要借助`SimpleDateFormat`类来完成。 - **代码示例**: ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss...
Java 日期格式化大全是 Java 中一个非常重要的知识点,它对于将时间字符串转换为日期或将日期转换为时间字符串起着关键作用。在 Java 中,我们通常使用 `java.text.SimpleDateFormat` 类来处理日期和时间字符串的...
5. **字符串**:Java中的String类是不可变的,你需要掌握它的特性和常用方法,如substring、concat、indexOf等。 6. **异常处理**:理解Java的异常处理机制,包括try-catch-finally语句块,以及自定义异常的创建。 ...
- 给定一个字符串,如果第一个字符是字母,则将它移到字符串末尾。 - 使用String类的方法实现字符串的截取和拼接操作。 27. **质数判断**: - 判断100以内的所有数字是否为质数。 - 可以使用循环结构进行判断,...
9. **字符串处理**:String类在Java中非常重要,理解其不可变性、字符串连接、子串提取等操作对于日常编程至关重要。 10. **调试与测试**:学习如何使用IDE进行断点调试,理解日志记录和单元测试的基本原理,可以...
在Java的基本语法部分,学习了第一个HelloWorld程序,包括关键字public、class、static、void、main,以及字符串数组String[] args。这是一个程序的入口点,是运行Java程序时首先被调用的方法。此外,还学习了print...
11 JAVASE第11天字符串.docx 12 JAVASE第12天.docx 13 第13天集合.docx 14 第14天集合下.docx 15 第15天Map集合.docx 16 第16天IO流.docx 17 第17天字节流.docx 18 线程.docx 19 网络编程.docx 2 拓薪教育-java基础...
1. `readLine()`: 读取一行文本,返回一个字符串,如果没有更多行可读,则返回null。 2. `read()`和`read(char[] buffer)`: 读取单个字符或填充缓冲区直到遇到换行符或文件结束。 3. `skip(long n)`: 跳过指定数量的...
`change`方法实现了一个简单的字符替换算法,该算法会遍历输入字符串中的每个字符,并根据不同的字符范围进行替换: - 数字字符(48-57):通过加5取模后转换回数字。 - 大写字母字符(65-90):通过加13取模后转换...
Java日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 ...23、根据传入的日期返回前一季度字符串 24、根据传入的日期返回相应的季度 .......
5. **字符串处理**:掌握String类的特性,学习如何创建、操作和比较字符串。 6. **异常处理**:理解Java的异常体系,学习如何使用try-catch-finally语句进行异常处理。 7. **输入/输出流**:了解I/O流的概念,学习...