Java学习之字符串练习

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

* 思路:
* 1,对数组排序。可以用选择,冒泡都行。
* 2,for嵌套和比较以及换位。
* 3,问题:以前排的是整数,比较用的比较运算符,可是现在是字符串对象。
* 字符串对象怎么比较呢?爽了,对象中提供了用于字符串对象比较的功能。

 1 public static void sort(String[] strings){
 2         String temp = null;
 3         for(int i=0;i<strings.length;i++){
 4             for(int j = i+1;j<=strings.length-1;j++){
 5                 if(strings[i].compareTo(strings[j])>0){
 6                     temp = strings[i];
 7                     strings[i]=strings[j];
 8                     strings[j]= temp;
 9                 }
10             }
11         }
12     }

2、一个子串在整串中出现的次数

* 思路:
* 1,要找的子串是否存在,如果存在获取其出现的位置。这个可以使用indexOf完成。
* 2,如果找到了,那么就记录出现的位置并在剩余的字符串中继续查找该子串,
* 而剩余字符串的起始位是出现位置+子串的长度.

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

 1 public static int sum(String string,String string1){
 2         int length = string1.length();
 3         int count = 0;
 4         int index = string.indexOf(string1);
 5         while(index!=-1){
 6             count++;
 7             index = string.indexOf(string1,index+length);
 8         }
 9         return count;
10 }

3、两个字符串中最大相同的子串

* 思路:
* 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中。
* 如果存在,短的那个字符串就是最大子串。
* 2,如果不是呢,那么就将短的那个子串进行长度递减的方式去子串,去长串中判断是否存在。
* 如果存在就已找到,就不用在找了。

 1 public static String getMaxSubstring(String s1, String s2) {
 2
 3         String max = null,min = null;
 4         max = (s1.length()>s2.length())?s1:s2;
 5
 6         min = max.equals(s1)?s2:s1;
 7
 8         System.out.println("max="+max);
 9         System.out.println("min="+min);
10
11
12
13         for (int i = 0; i < min.length(); i++) {
14
15             for(int a = 0,b = min.length()-i; b != min.length()+1; a++,b++){
16
17                 String sub = min.substring(a, b);
18 //                System.out.println(sub);
19                 if(max.contains(sub))
20                     return sub;
21             }
22         }
23
24         return null;
25     }

4、模拟一个trim功能一致的方法。去除字符串两端的空白
* 思路:
* 1,定义两个变量。
* 一个变量作为从头开始判断字符串空格的角标。不断++。
* 一个变量作为从尾开始判断字符串空格的角标。不断--。
* 2,判断到不是空格为止,取头尾之间的字符串即可。
*/

 1 public static String myTrim(String s) {
 2
 3         int start = 0, end = s.length() - 1;
 4
 5         while (start <= end && s.charAt(start) == ‘ ‘) {
 6             start++;
 7         }
 8         while (start <= end && s.charAt(end) == ‘ ‘) {
 9             end--;
10         }
11         return s.substring(start, end + 1);
12     }
时间: 2024-10-27 17:46:40

Java学习之字符串练习的相关文章

java学习-关于字符串String

有必要总结记录一下java的学习,否则,永远只是记忆碎片化和always google(费时) 刚好,小伙伴给了一份自己做的review,在学习的过程中,update一下自己的见解和学习内容: 关于String: 1 package string_keywords; 2 /** 3 * 参考url: http://developer.51cto.com/art/201106/266454.htm 4 * 5 * 常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.cla

Java学习笔记--字符串和文件IO

1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1.1 String类 字符串就是由一系列的字符组成的序列,在很多语言中,比如C语言,将其存储在一个数组中.现在运用Java的思想,就要将字符串视为一个对象,其中Java规定的String类有11个构造方法,同时还有至少40种实现的方法,通过String类的学习,可以很好地了解面向对象的类和对象的思想.

Java学习之字符串的创建

转自:http://lavasoft.blog.51cto.com/62575/80034/ Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 一.从根本上认识java.lang.String类和String池 首先,我建议先看看String类的源码实现,这是从本质上认识String类的根本出发点.从中可以看到: 1.String类是final的,不可被继承.public final class String.

Java学习之字符串类

String在Java中是一个类类型(非主类型),是一个不可被继承的final类,而且字符串对象是一个不可变对象.声明的String对象应该被分配到堆中,声明的变量名应该持有的是String对象的引用. 运行期计算得到的字符串会得到一个新的字符串.tag="hel"+tag; 这种现象是Java为了效率而赋予String的特殊性.字符串是不可变的,字符串被分配了空间和初始值后值就不可变化.一旦变化,就会放弃原有的对象而分配新的空间给变化后的字符串.频繁地赋新值,会给程序运行效率带来极大

JAVA学习笔记--字符串概述

一.String类 String类代表字符串,是由字符构成的一个序列.创建String对象的方法很简单,有以下几种: 1)用new来创建: String s1 = new String("my name is tongye"); 2) 不用new直接创建: String s2 = "my name is tongye"; 3) 可以用字符数组来创建一个字符串: char[] c = {'t','o','n','g','y','e'}; String s3 = new

Java学习总结:飘逸的字符串

Java学习:飘逸的字符串 前言 相信不管我们运用Java语言来开发项目还是进行数据分析处理,都要运用到和字符串相关的处理方法.这个社会处处有着和字符串相关的影子:日志.文档.书籍等.既然我们离不开字符串,那么就来好好认识一下吧. 怎么构造一个字符串? 在Java语言里,有两种方法来创建一个字符串对象:一是用字符串直接量 1 String message=new String("Welcome to Java"); 2 String message2="Welcome to

Java学习笔记_18_字符串、包装类、原始数据类剪得转换

18. 字符串.包装类.原始数据类剪得转换: 各个转换如下: 1>String 转换成Integer: Integer integer = new Integer("string");或 Integer Integer = Integer.valueOf(String): 注:String必须是数字字符串,如:"1232". 2>Integer 转换成String: String str = Integer.toString(); 3>Intege

Java学习(API及Object类、String类、StringBuffer字符串缓冲区)

一.JAVA的API及Object类 1.API 概念: Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可. 在JDK安装目录下有个src.zip文件,这个文件解压缩后里面的内容是所有Java类的源文件.可以在其中查看相对应的类的源码. 我们在每次查看类中的方法时,都打开源代码进

java学习之数字与字符串

java学习是根据how2j上提供的资料进行整理,如有雷同,很是正常. 封装类 所有的基本类型,都有对应的封装类. 数字封装类 数字封装类有Byte,Short,Integer,Long,Float,Double,这些类都是抽象类Number的字类.比如int的封装类是Integer,Integer就叫做封装类. 那基本类型如何转化为封装类. public class TestNumber{ public static void main(String[] args){ int i = 1; /