JAVA动手动脑及课后作业
1.查看其输出结果。如何解释这样的输出结果?从中你能总结出什么?

运行结果
true
true
false
原因
1)在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象。
2)编译器在编译s2一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“Hello”)。这种优化工作由Java编译器自动完成。
3)当直接使用new关键字创建字符串对象时,虽然值一致(都是“Hello”),但仍然是两个独立的对象。

为什么会有上述的输出结果?从中你又能总结出什么?
1)给字串变量赋值意味着:两个变量(s1,s2)现在引用同一个字符串对象“a”!
2)String对象的内容是只读的,使用“+”修改s1变量的值,实际上是得到了一个新的字符串对象,其内容为“ab”,它与原先s1所引用的对象”a”无关,所以,s1==s2返回false;
3)代码中的“ab”字符串是一个常量,它所引用的字符串与s1所引用的“ab”对象无关。
4)String.equals()方法可以比较两个字符串的内容。
2.请查看String.equals()方法的实现代码,注意学习其实现方法。
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
3.String类中函数的使用方法
1.length()
作用:获取字符串的长度
String a=”abc”;
Int b=a.length();
2.charAt()
作用:获取指定位置的字符
String a=”abc”;
Char b=a.charAt(3);
3.getChars()
作用:获取从指定位置起的子串复制到字符数组中
String s1=”abc”;
Char s2=new char[5];
S1.getChars(0,2,s2,0); //将s1中的下标为0,1,2的字符复制到s2中从0开始的位置
4.Replace()
作用:子串替换
String s1=”abcd”,s2;
S2=s1.replace(“ab”,”12”);
5.toUpperCase()
作用:大写转换
String s1=”abc”;
s1.toUpperCase()=ABC
6.toLowerCase()
作用:小写转换
String s1=”ABC”;
s1.toLowerCase()=abc
7.Trim()
作用:去除头尾空格
String s1=” abcd”;
s1=s1.tirm();
s1=”abcd”
8.toCharArray()
作用:将字符串对象转换为字符数组
String s1=”abcd”;
Char [] s2=s1.toCharArray();
4.字符串加密
设计思想
1.首先使用Scanner类输入一个字符串;
2.用charAt类将字符串中的一个个字符取出来;
3.将每个字符加上3,再强制转换成char类型,并将字符赋值到定义的char类型的数组里;
4.判断字符是否是想,x,y,z,如果是则加上3后再减去26;
5.最后将定义的char类型的数组内容输出;
流程图

源代码
import java.util.Scanner;
public class Jiami {
public static void main(String[] args){
String s1="";
System.out.println("请输入一个字符串");
Scanner sc=new Scanner(System.in);
s1=sc.next();
sc.close();
char[] s2=new char[s1.length()];
for(int i=0;i<s1.length();i++)
{
s2[i]=(char) (s1.charAt(i)+3);
if(s1.charAt(i)>='x'&&s1.charAt(i)<='z'||s1.charAt(i)>='X'&&s1.charAt(i)<='Z')
s2[i]=(char) (s1.charAt(i)+3-26);
}
System.out.println("加密后的字符串为:");
for(int i=0;i<s1.length();i++)
System.out.print(s2[i]+" ");
}
}
截图

JAVA动手动脑及课后作业的更多相关文章
- java动手动脑和课后实验型问题String类型
1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请 ...
- java动手动脑和课后实验型问题第四讲
1.完全"手写代码实现"随机数生成 动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. Modulus=231-1=int.MaxValue Mult ...
- java动手动脑和课后实验型问题
1.以下代码的输出结果是什么?为什么会有这个结果? int[] a = { 5, 7, 20 }; System.out.println("a数组中的元素:"); // 循环输出a ...
- 2019-9-16 java上课知识整理总结(动手动脑,课后实验)
java上课知识整理总结(动手动脑,课后实验) 一,课堂测试 1,题目:课堂测试:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求:(1)题目避免重复: (2)可定制( ...
- Java动手动脑——多态和继承
Java动手动脑——继承和多态 实验一 预估输出答案:100 200 201 202 输出结果:100 200 201 202 输出答案分析:100 创建parent类的对象,调用对象的方 ...
- JAVA 数组作业——动手动脑以及课后实验性问题
JAVA课后作业——动手动脑 一:阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 1.源代码 // PassArray.java // ...
- JAVA语法基础作业——动手动脑以及课后实验性问题 (八)
一.动手动脑 运行AboutException.java示例,了解Java中实现异常处理的基础知识. 1)源代码 import javax.swing.*; class AboutException ...
- java课堂动手动脑及课后实验总结
动手动脑一:枚举 输出结果: false false true SMALL MEDIUM LARGE 分析和总结用法 枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本 ...
- Java动手动脑第四讲课堂作业
动手动脑1 完全“手写代码实现”随机数生成 纯随机数发生器
随机推荐
- (转)2018几大主流的UI/JS框架——前端框架 [Vue.js(目前市场上的主流)]
https://blog.csdn.net/hu_belif/article/details/81258961 2016年开始应该是互联网飞速发展的几年,同时也是Web前端开发非常火爆的一年,Web ...
- 主流浏览器 Cookie 的大小
目前测试的两种浏览器:Chrome 和 IE . 环境:IIS 7.5 只创建了站点,未做任何配置. Chrome : v36.0.1985.143 m 单个 Cookie 的长度为 4069 个字符 ...
- pycahrm 基础设置
一些常用设置: 1. pycharm默认是自动保存的,习惯自己按ctrl + s 的可以进行如下设置:1. file -> Setting -> General -> Synchro ...
- tensorflow 高级api使用分布式之配置
"""Constructor. Sets the properties `cluster_spec`, `is_chief`, `master` (if `None` i ...
- php yii 命令
php yii 敲回车 This is Yii version 2.0.11. The following commands are available: - asset Allows you to ...
- JAVA语言 第五周
我准备在下一周对Java语法进行总结,现在写代码模板还要参考,语法掌握的不熟悉. 这一周除了对代码进行完善外,观看了一些java入门学习视频.
- httpd无法加载libphp5.so模块
安装httpd-2.2.8 和php-5.2.5,一切顺利. 最后一步重新启动apache报如下错误: httpd: Syntax error on line 53 of /usr/local/apa ...
- python lambda 函数
lambda 函数,也叫匿名函数,是一个不需要使用def 关键字定义的小函数.返回一个函数地址. 表达式只能有一个,参数可以有多个. a = lambda x:x*x a(3) 返回的是9
- H5前端框架推荐合集 (转)
Ionic ionic 吧开发流程都帮你做好了,已经不再是单纯的UI框架,而是开发框架了,非常适合快速开发.基于angular2,丰富的UI组件,大大改进的编程模型, Semantic UI 中文官网 ...
- The number of method references in a .dex file cannot exceed 64K.(转)
前言 我一直都知道app里面的方法数是有限制的差不多64000,具体的就未曾考证了在遇到这个问题之前,一直以为这个一个多么遥远的距离其实并不是的,稍有不慎这个异常出来了当前并不是你真的有编写了64k的 ...