1.请查看String.equals()方法的实现代码,注意学习其实现方法

(1)源程序:

public class StringEquals {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

String s1=new String("Hello");

String s2=new String("Hello");

System.out.println(s1==s2);//false

System.out.println(s1.equals(s2));//true

String s3="Hello";

String s4="Hello";

System.out.println(s3==s4);//true

System.out.println(s3.equals(s4));//true

}

}

(2)结果截图

(3)结果分析:

new动态申请空间,申请的空间是不一样的,所以直接用“==”判等时他们是不等的,“==”判断地址和内容是否一样,显然地址不一样,所以显示false;而用equals时,只判断内容,内容相同,所以true;s3和s4没有用new,当字符串内容相同时,为了节省地址,就会分配一个地址,所以s3、s4无论地址还是内容都是一样的。

2.加密

(1)源代码:

import java.util.Scanner;

public class jiami {

public static void main(String args[])

{

//int a[]=null;

System.out.print("请输入一串字符串 :");

Scanner scanner=new Scanner(System.in);

String a=scanner.next();

System.out.println("加密后的是:");

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

{

int b=a.charAt(i);//获取指定位置上的字符,并强制转化成int型

if((b+3<='Z'&&b+3>='A')||(b+3<='z'&&b+3>='a'))b=b+3;

else if((b+3>'z'&&b<='z'+3)||(b+3>'Z'&&b<='Z'+3))b=b-23;

System.out.print(new String(new char[]{(char)b}));//强制转换,将int型的b转化成char类型的

}

}

}

(2)设计思想:

首先输入一串字符,表示成string类型的,然后就进行加密,加密时用charAt函数将string类型的字符一个个的分别转化成int型的b,接着判断int型的b变量变化的范围,b+3<=z,就直接加3,否则就-23;最后输出变化后的字符串,将整型的b强制转化成char类型的数组,再以string的类型输出。

(3)运行结果截图

(4)程序流程图

3.验证

(1)源代码

import java.util.Scanner;

public class Stringexam {

public static void main(String args[])

{

char chara[]=new char[5];

/*System.out.print("请输入一串数:");

Scanner scanner=new Scanner (System.in);

String a=scanner.next();*/

String a=new String (" My name is ChenXiaoyang");

System.out.println("请输出a的值:"+a);

System.out.println("请输出a的长度:"+a.length());

System.out.println("请输出a的值(去掉头尾空格):"+a.trim());//会去掉首尾空格

System.out.println("请输出去掉头尾空格后a的长度:"+a.trim().length());

char b=a.charAt(2);//取下标为3的字符

System.out.println("下标为3的字符是:"+b);

a.getChars(1,5, chara,0);//获取从指定位置起的子串复制到字符数组,放在字符数组下标为0的位置

System.out.println("字符数组是:");

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

{

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

}System.out.println();

String a1=a.substring(0,2);System.out.println("a1的值:"+a1);//获取下标为0,1的字符串

String a2=a.substring(3, 5);System.out.println("a2的值:"+a2);//获取下标为3,4的字符串

String b3=a.replace(a1, a2);System.out.println("a1和a2互换后的值:"+b3);//a1和a2互换

System.out.println("a的值:"+a);

String a4=a.toUpperCase();//全变为大写的

System.out.println("变化后的a的值:"+a4);

String a5=a.toLowerCase();

System.out.println("再次变化后a的值:"+a5);//全变为小写的

char aa[]=a.toCharArray();

for(int j=0;j<a.length();j++)

{

System.out.print(aa[j]+" ");

}

//System.out.print("化为字符数组后的a的值:"+);//将字符串转化成数组

}}

(2)

Length():获取字串长度

charAt():获取指定位置的字符

getChars(int,int,char[],int):获取从指定位置起的子串复制到字符数组中,

四个参数的含义:

.被拷贝字符在字串中的起始位置

.被拷贝的最后一个字符在字串中的下标再加1

.目标字符数组

.拷贝的字符放在字符数组中的起始下标

replace(a1,a2):子串替换,如果()是写的查找后的字符调换就只会调换查找到的两个位置的字符,但是如果只是写的一个字符,不是查找到的就会替换掉所有的,用a2替换a1.

toUpperCase()转换为大写的

toLowerCase():转换成小写的

trim():去除头尾空格:

toCharArray():将字符串对象转换为字符数组

(3)程序截图:

string类的一些函数方法的更多相关文章

  1. Java String类中的intern()方法

    今天在看一本书的时候注意到一个String的intern()方法,平常没用过,只是见过这个方法,也没去仔细看过这个方法.所以今天看了一下.个人觉得给String类中加入这个方法可能是为了提升一点点性能 ...

  2. Java——String类中的compareTo方法总结

    String类的定义:    java.lang  类 String   java.lang.Object      java.lang.String 所有已实现的接口:Serializable, C ...

  3. String类中的equals()方法:

    String类中的equals()方法: public boolean equals(Object anObject) { //如果是同一个对象 if (this == anObject) { ret ...

  4. Java用代码演示String类中的以下方法的用法

    用代码演示String类中的以下方法的用法 (1)boolean isEmpty(): 判断字符串是不是空串,如果是空的就返回true (2)char charAt(int index): 返回索引上 ...

  5. C++中string类的操作函数。

    相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...

  6. string类中getline函数的应用

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  7. Javascript String类的属性及方法

    String 类 Attribute and method anchor()              创建一个<a>标签的实例,将其name属性设置为被传递给此方法的字符串 big()  ...

  8. String类的常用判断方法使用练习

    选取了一些常用的判断方法进行了使用练习,后续跟新其他方法 package StringDemo; // String类的判断方法解析 // 1:boolean equals(); // 判断字符串是否 ...

  9. String类中一些的方法的应用

    一.整理string类 1.Length():获取字串长度: 2.charAt():获取指定位置的字符: 3.getChars():获取从指定位置起的子串复制到字符数组中:(它有四个参数) 4.rep ...

随机推荐

  1. C# 申请非托管内存

    方式一:使用 stackalloc 关键字 int* block = stackalloc int[100]; 注:此关键字仅在局部变量初始值设定项中有效. 以下代码导致编译器错误. int* blo ...

  2. ABAP-串口通信-道闸设备

    最近SAP系统需要与道闸设备集成,通过串口通讯模式控制道闸栏杆升降,在此将开发过程中的思路及问题点做个备注. 一.相关设备 道闸设备型号:富士智能FJC-D618 串口模块:康耐德 C2000-A1- ...

  3. vue.js 组件引用之初级

    1. 构造组件,及组件引用:1.1 构造一个组件,1.2 注册一个组件,1.3  实例化Vue()即引用Vue() <!DOCTYPE html> <html lang=" ...

  4. Python文件夹与文件的操作(转)

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...

  5. Servlet之ServletContext获取web上下文路径、全局参数、和Attribute(域)

    1)获取web上下文路径 public void doGet(HttpServletRequest request, HttpServletResponse response) throws Serv ...

  6. 高并发架构技术|缓存失效、缓存穿透问题 PHP 代码解决

    问题描述 缓存失效: 引起这个原因的主要因素是高并发下,我们一般设定一个缓存的过期时间时,可能有一些会设置5分钟啊,10分钟这些:并发很高时可能会出在某一个时间同时生成了很多的缓存,并且过期时间在同一 ...

  7. sql help cs

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Confi ...

  8. ShaderLab学习总结

    转载 Unity ShaderLab学习总结 Why Bothers? 为什么已经有ShaderForge这种可视化Shader编辑器.为什么Asset Store已经有那么多炫酷的Shader组件可 ...

  9. C# HttpWebRequest 错误总结

    1.form data 需要编码!!! byte[] data = new ASCIIEncoding().GetBytes("pattern=0&wwid=古兴越&good ...

  10. Java happen-before

    下面是happens-before原则规则: 程序次序规则:一个线程内,按照代码顺序,书写在前面的操作先行发生于书写在后面的操作: 锁定规则:一个unLock操作先行发生于后面对同一个锁额lock操作 ...