intern方法

public class Main
{
public static void main(String[] args)
{
String str1 = new String("asd");
String str2 = str1.intern();/* 字符串常量池中有,就返回字符串,没有就创建 */
System.out.println(str2);
System.out.println( str1 == str2 );
}
}

练习1:字符串数组排序

import java.util.Scanner;

/*
* 给定一个字符串数组,按字典序升序排序
*/
public class Main {
public static void main(String[] args) {
stringsort();
} public static void stringsort() {
String[] str = new String[10];
Scanner in = new Scanner(System.in);
for (int i = 0; i < str.length; i++) {
str[i] = in.nextLine();
}
// System.out.println(str.length);
for (int i = 0; i < str.length - 1; i++) {
for (int j = 0; j < str.length - 1 - i; j++) {
if (str[j].compareTo(str[j + 1]) > 0) {
String t = str[j];
str[j] = str[j + 1];
str[j + 1] = t;
}
}
}
for (String iString : str) {
System.out.println(iString);
} }
}

练习2:统计子串在母串中出现的次数

indexOf的应用,记录当前出现的下标A。然后再从A+子串长度继续下后indexOf,利用循环可实现本功能

import java.util.Scanner;

/*
* 一个子串在字符串中出现的次数
*/
public class Main {
public static void main(String[] args) {
count();
} public static void count() {
String str = "abcdefabcghiabcsdabchzabc";
int num = 0,wz = 0;
for (int i = 0; i < str.length(); i++) {
int t = str.indexOf("abc",wz);
if(t!=-1)
{
wz = t+"abc".length();
num++;
}
else
break;
}
System.out.println(num);
}
}

练习3:两个字符串的最大同样子串

import java.util.Scanner;

/*
* 两个字符串中的最长公共子串
*/
public class Main {
public static void main(String[] args) {
String tString = compare();
System.out.println(tString);
} public static String compare() {
String str1 = "vbabcdefgsdfg";
String str2 = "asdabcdefgdf";
int Mlen = str1.length();
int Zlen = str2.length();
int len = (Mlen > Zlen) ? Zlen : Mlen;
// 找较短的母串,最大的公共长度不会超过len
// 公共子串可能出如今中间 for (int i = 0; i < len; i++)// 控制最大长度
{
for (int j = 0, k = len - i; k <= len; k++, j++)// j控制几个满足,k控制子串最后元素下标不越界
{
String sub = str2.substring(j, k);
if (str1.contains(sub))
return sub;
}
}
return null;
}
}

练习4:去除两端空格(模拟trim方法)

public class Main {
public static void main(String[] args) {
String string = " asd fs fg h ";
int st = 0,en = string.length()-1; for(;st<=en && string.charAt(st)==' '; st++); for(;st<=en && string.charAt(en)==' '; en--); String sub = string.substring(st, en+1);
System.out.println(sub);
} }



JAVA学习第三十课(经常使用对象API)- String类:类方法练习的更多相关文章

  1. JAVA学习第三十六课(经常使用对象API)— Set集合:HashSet集合演示

    随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里非常多数据结构.算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发经常使用 HashSet集合 .TreeSet ...

  2. JAVA学习第三十二课(经常使用对象API)- 基本数据类型对象包装类

    将基本数据类型(8种:int..)封装成对象的优点就是能够在对象中封装很多其它的功能和方法来操控该数据 常见的操作就是:用于基本数据类型与字符串之间的转换 基本数据类型对象包装类一般用于基本类型和字符 ...

  3. JAVA学习第三十四课 (经常使用对象API)—List集合及其子类特点

    整个集合框架中最经常使用的就是List(列表)和Set(集) 一.List集合 && Set的特点 Collection的子接口: 1.List:有序(存入和取出的顺序一致),元素都有 ...

  4. JAVA学习第三十三课(经常使用对象API) —迭代器

    数字有非常多用数组存,对象有非常多就要用集合存 可是数组是固定长度的,集合是可变长度的 集合的由来: 对象用来封装特有数据,对象多了须要存储,假设对象个数不确定,就须要使用集合容器来存储 集合的特点: ...

  5. Java学习笔记三十:Java小项目之租车系统

    Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...

  6. Java基础(三十五)Math、Random类和数字格式化(String.format方法)

    一.Math类 Math类常用的方法: public static long abs (double a) 返回a的绝对值 public static double max (double a,dou ...

  7. 风炫安全WEB安全学习第三十八节课 越权漏洞演示与讲解

    风炫安全WEB安全学习第三十八节课 越权漏洞演示与讲解 越权漏洞 0x01 漏洞介绍 越权漏洞的危害与影响主要是与对应业务的重要性相关,比如说某一页面服务器端响应(不局限于页面返回的信息,有时信息在响 ...

  8. 风炫安全web安全学习第三十六节课-15种上传漏洞讲解(一)

    风炫安全web安全学习第三十六节课 15种上传漏洞讲解(一) 文件上传漏洞 0x01 漏洞描述和原理 文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接.但是想真正把 ...

  9. 风炫安全web安全学习第三十五节课 文件下载和文件读取漏洞

    风炫安全web安全学习第三十五节课 文件下载和文件读取漏洞 0x03 任意文件下载漏洞 一些网站由于业务需求,往往需要提供文件下载功能,但若对用户下载的文件不做限制,则恶意用户就能够下载任意敏感文件, ...

随机推荐

  1. 题目:[NOIP1999]拦截导弹(最长非递增子序列DP) O(n^2)和O(n*log(n))的两种做法

    题目:[NOIP1999]拦截导弹 问题编号:217 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发 ...

  2. NumberSpinner( 数字微调) 组件

    本节课重点了解 EasyUI 中 Spinner(微调)组件的使用方法,这个组件依赖于Numberbox(数值输入框)和 Spinner(微调)组件. 一. 加载方式//class 加载方式<i ...

  3. Spinner( 微调) 组件

    本节课重点了解 EasyUI 中 Spinner(微调)组件的使用方法,这个组件依赖于ValidateBox(验证框)组件. 一. 加载方式Spinner(微调)组件是其他两款高级微调组件的基础组件, ...

  4. JS客户端读取Excel文件插件js-xls使用方法

    js-xls是一款客户端读取Excel的插件,亲测IE11.FireFox.Chrome可用,读取速度也客观. 插件Demo地址:http://oss.sheetjs.com/js-xlsx/    ...

  5. chkconfig(check config)命令

    功能说明:chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接.  语 法:chkconfig ...

  6. .net web api 的route理解

    .NET web api 的特性是和MVC一样,通过Route 来控制action的访问方式.Route匹配规则是个奇特的方式,首先看一段Route的模板 Routes.MapHttpRoute( n ...

  7. (四)backbone - DEMO - 通信录

    DEMO介绍 是DEMO - User List 的扩展,增加查询 大体实现 •创建Contact Model var Contact = Backbone.Model.extend({ defaul ...

  8. log4j.property配置

    # 1. 日志等级 FATAL=0; ERROR=3; WARN=4; INFO=6; DEBUG=7; # 2. Appender 为日志输出目的地,Log4j提供的appender有以下几种# o ...

  9. [Oracle] 浅谈Sequence

    Oracle的Sequence是一种数据库对象,它可以生成有序数字,主要用于主键的自动生成.如果没有Sequence,主键的自动生成必须得在代码逻辑里实现,大致过程是:获取当前主键值,新主键值=当前主 ...

  10. 织梦DEDECMS网站首页如何实现分页翻页

    织梦DEDECMS模板网站首页如何实现首页分页和翻页 方法如下:(三种方法,自己选择一种来实现分页吧) 第一种:调用ajax和参数的(不推荐)1.必须在DEDE首页模板中的<head>&l ...