package cn.itcast.p1.string.test;

/*

* 1,给定一个字符串数组。按照字典顺序进行从小到大的排序。

* {"nba","abc","cba","zz","qq","haha"}

*

* 思路:

* 1,对数组排序。可以用选择,冒泡都行。

* 2,for嵌套和比较以及换位。

* 3,问题:以前排的是整数,比较用的比较运算符,可是现在是字符串对象。

* 字符串对象怎么比较呢?爽了,对象中提供了用于字符串对象比较的功能。

*

*

*/

public class StringTest_1 {

/**

* @param args

*/

public static void main(String[] args) {

String[] arr = { "nba", "abc", "cba", "zz", "qq", "haha" };

printArray(arr);

sortString(arr);

printArray(arr);

}

public static void sortString(String[] arr) {

for (int i = 0; i < arr.length - 1; i++) {

for (int j = i + 1; j < arr.length; j++) {

if(arr[i].compareTo(arr[j])>0)//字符串比较用compareTo方法

swap(arr,i,j);

}

}

}

private static void swap(String[] arr, int i, int j) {

String temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

public static void printArray(String[] arr) {

System.out.print("[");

for (int i = 0; i < arr.length; i++) {

if (i != arr.length - 1)

System.out.print(arr[i] + ", ");

else

System.out.println(arr[i] + "]");

}

}

}

package cn.itcast.p1.string.test;

/*

* 2,一个子串在整串中出现的次数。

* "nbaernbatynbauinbaopnba"

* 思路:

* 1,要找的子串是否存在,如果存在获取其出现的位置。这个可以使用indexOf完成。

* 2,如果找到了,那么就记录出现的位置并在剩余的字符串中继续查找该子串,

* 而剩余字符串的起始位是出现位置+子串的长度.

* 3,以此类推,通过循环完成查找,如果找不到就是-1,并对 每次找到用计数器记录。

*

*/

public class StringTest_2 {

/**

* @param args

*/

public static void main(String[] args) {

String str = "nbaernbatnbaynbauinbaopnba";

String key = "nba";

int count = getKeyStringCount_2(str,key);

System.out.println("count="+count);

}

public static int getKeyStringCount_2(String str, String key) {

int count = 0;

int index = 0;

while((index = str.indexOf(key,index))!=-1){

index = index + key.length();

count++;

}

return count;

}

/**

* 获取子串在整串中出现的次数。

* @param str

* @param key

* @return

*/

public static int getKeyStringCount(String str, String key) {

//1,定义计数器。

int count = 0;

//2,定义变量记录key出现的位置。

int index = 0;

while((index = str.indexOf(key))!=-1){

str = str.substring(index+key.length());

count++;

}

return count;

}

}package cn.itcast.p1.string.test;

/*

* 3,两个字符串中最大相同的子串。

* "qwerabcdtyuiop"

* "xcabcdvbn"

*

* 思路:

* 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中。

* 如果存在,短的那个字符串就是最大子串。

* 2,如果不是呢,那么就将短的那个子串进行长度递减的方式去子串,去长串中判断是否存在。

* 如果存在就已找到,就不用在找了。

*

*

*/

public class StringTest_3 {

/**

* @param args

*/

public static void main(String[] args) {

String s1 = "qwerabcdtyuiop";

String s2 = "xcabcdvbn";

String s = getMaxSubstring(s2, s1);

System.out.println("s=" + s);

}

/**

* 获取最大子串

*

* @param s1

* @param s2

* @return

*/

public static String getMaxSubstring(String s1, String s2) {

String max = null,min = null;

max = (s1.length()>s2.length())?s1:s2;

min = max.equals(s1)?s2:s1;

System.out.println("max="+max);

System.out.println("min="+min);

for (int i = 0; i < min.length(); i++) {

for(int a = 0,b = min.length()-i; b != min.length()+1; a++,b++){

String sub = min.substring(a, b);

//System.out.println(sub);

if(max.contains(sub))

return sub;

}

}

return null;

}

}

package cn.itcast.p1.string.test;

/*

* 4,模拟一个trim功能一致的方法。去除字符串两端的空白

* 思路:

* 1,定义两个变量。

* 一个变量作为从头开始判断字符串空格的角标。不断++。

* 一个变量作为从尾开始判断字符串空格的角标。不断--。

* 2,判断到不是空格为止,取头尾之间的字符串即可。

*/

public class StringTest_4 {

/**

* @param args

*/

public static void main(String[] args) {

String s = " ab c ";

s = myTrim(s);

System.out.println("-" + s + "-");

}

public static String myTrim(String s) {

int start = 0, end = s.length() - 1;

while (start <= end && s.charAt(start) == ' ') {

start++;

}

while (start <= end && s.charAt(end) == ' ') {

end--;

}

return s.substring(start, end + 1);

}

}

http://www.dengb.com/Javabc/730751.htmlwww.dengb.comtruehttp://www.dengb.com/Javabc/730751.htmlTechArticlepackage cn.itcast.p1.string.test;/* * 1,给定一个字符串数组。按照字典顺序进行从小到大的排序。 * {"nba","abc","cba","zz","qq","haha"} * * 思路: * 1,对数...

java毕向东练习题,java中的String类的练习(来自毕向东老师视频资料)相关推荐

  1. java面向对象使用字符串_java面向对象中的String类中12种常用的方法

    1.字符串与字符数组的转换 字符串可以使用toCharArray()方法变成一个字符数组,也可以使用String类的构造方法把一个字符数组变成一个字符串. public class StringAPI ...

  2. Java中的String类占用多大的内存

    写在前面 对于Java中的String类占用多大的内存空间这个问题,是最近面试中问的比较多的一个问题.很多小伙伴的回答的都不是很正确,有说不占空间的,有说1个字节的,有说2个字节的,有说3个字节的,有 ...

  3. 为什么jdk中把String类设计成final

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 为什么j ...

  4. C++中的string类用法简介

    本文主要介绍C++中的string类的常见用法. 1. 概述 string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行string操作,也可以通过文件等手段进行s ...

  5. c 语言string类用法,C++中的string类用法简介

    本文主要介绍C++中的string类的常见用法. 1. 概述 string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行string操作,也可以通过文件等手段进行s ...

  6. java中的string类和ArrayList常用方法

    Java中String类和ArrayList集合常用方法 String类常用方法 获取字符串的长度 方法很简单,很多数组都是使用这个方法来遍历数组中的元素,直接上代码: //获取字符串的长度 publ ...

  7. java中String类是什么_Java中的String类

    /* String类用于描述字符串事物的 那么它就提供了多个方法对字符串进行操作 方法都会用,字符串这块就结束了 常见的操作有哪些? "abcd" 它应该具备什么功能,我们才能更好 ...

  8. netbeans连接数据库_NetBeans Java EE技巧#1 –数据库中的实体类

    netbeans连接数据库 NetBeans IDE是开发各种应用程序的绝佳选择. 具体来说,我每天都使用它来开发和维护Java EE应用程序. 在过去的几个发行版中,不仅Java EE的生产力提高了 ...

  9. NetBeans Java EE技巧#1 –数据库中的实体类

    NetBeans IDE是开发各种应用程序的绝佳选择. 具体来说,我每天都使用它来开发和维护Java EE应用程序. 在过去的几个发行版中,不仅Java EE的生产力提高了,而且NetBeans ID ...

  10. java list 分组_Java 将List中的实体类按照某个字段进行分组并存

    1.JDK1.8之前: 假设有实体类User,里面有字段id,我们将相同id的User进行分组,并存放在Map中.(例子不是很恰当,但很能说明问题) public static void main(S ...

最新文章

  1. 递归/回溯:八皇后问题N-Queens
  2. jQuery - focusin/focusout/focus/blur事件的区别与不同
  3. (1.3)HarmonyOS鸿蒙启动程序运行流程
  4. python自然语言处理库_Python 自然语言处理(NLP)工具库汇总
  5. Jeff Dean谈2020年机器学习趋势:多任务和多模态会有大进展
  6. docker entrypoint入口文件详解
  7. 连接远程hbase长时间等待问题
  8. (转)UIWebView的基本用法,适合新手
  9. 海康威视智能终端获取实时人脸体温识别记录二次开发java
  10. spider.php使用方法,phpspider爬虫框架的使用
  11. 【过关斩将】如何制作高水平简历-观念篇
  12. dsolve()函数求解微分方程
  13. HDU 4609 3-idiots (思维+FFT卷积)
  14. 桌面PDF文件名太长无法删除的问题
  15. matlab中psf2otf作用,Matlab中psf2otf()函数在opencv中的实现
  16. Win11系统打开电脑磁盘显示磁盘错误无法打开怎么办?
  17. 创建一个子进程,子进程向无名管道中写入数据,父进程打印输出。
  18. 产品经理必备文章50篇合集:从入门到提升
  19. 3ds Max 实验十一 材质的设置
  20. IBMMQ-安装IBMMQ服务端7.5(windows)

热门文章

  1. Excel函数公式大全—MATCH函数
  2. 西刺代理python_手把手教你使用Python爬取西刺代理数据(下篇)
  3. FlipIt博弈模型和后续研究的改进
  4. 【动手撸深度学习】不吹不黑一份代码即可进Kaggle排行榜!
  5. Mac “EdrawMax”已损坏,无法打开。 您应该将它移到废纸篓
  6. 微信小程序生成海报库
  7. 新版《中国药典》提升中药标准
  8. Pigx官方文档地址
  9. 华为ensp路由器静态路由配置
  10. 论文阅读《A Survey on Deeping Learning In Medical Image Analysis》