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. 一个封装HTTP请求的函数(C++)

    这里封装了HTTP请求的,支持GET与POST,并支持各种参数组合,调用方式很简单使用DEVWEB::WebRequest(string(“http://www.luaie.com/”),ret);就 ...

  2. 解决从github下载web的源代码部署到eclipse的问题

    2015年6月2日 天气晴 github官网:https://github.com/ 以下以pdf.js作为案例说明:https://github.com/mozilla/pdf.js 1).点击案例 ...

  3. jstl经典用法

    jstl的forEach使用和set变量实现自增: <body> <c:set var="index" value="0" /> < ...

  4. HttpClient get返回String类型 JAVA

    public static String httpGet(String url) { // get请求返回结果 String strResult = ""; try { Defau ...

  5. Tooltip(提示框)组件

    一.加载方式 //class加载方式 <a href="http://www.ycku.com" title="这是一个提示信息!" class=&quo ...

  6. css优先级计算

    主要的css选择器有id,class,tag,[],:,::等,而通常需要对其优先级进行判断的有id,class,tag,另外内联样式和!important也和css的优先级有关系. 如果将这五种不同 ...

  7. Java Se 基础系列(笔记) -- OO

    记录所学到的关于Java Se的一些基础知识 1.对象是通过“属性(成员变量)”和“方法”来分别对应事物所具有的静态属性和动态属性 2.类(Class)是对某一类事物的抽象,对象(Object)为某个 ...

  8. Codeforces Round #276 (Div. 1)

    a. 给俩数, 求他俩之间二进制数中1最多的,有多个输出最小的: 贪心,从小到大加能加就加,最后可能碰到一个不能加了但是当前数比l小,那么就加上这个数,然后从大到小,能减就减,见到符合条件 #incl ...

  9. 矩阵链乘 hrbust 1600

    #include<string.h> //区间dp的思想#include<iostream> //将一个区间分成两段,将每一段当成是一个矩阵#include<stdio. ...

  10. GridView Footer页脚统计实现多行

    在使用GridView时有时会需要多行显示页脚Footer的统计,下面是一种解决方法,仅仅供各位参考 在GridView的RowCreated事件中添加多行页脚,实例代码如下: protected v ...