课后作业和动手动脑(字符串)

动手动脑1:

(1)       在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象。

(2)       编译器在编译s2一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“Hello”)。这种优化工作由Java编译器自动完成。

(3)       当直接使用new关键字创建字符串对象时,虽然值一致(都是“Hello”),但仍然是两个独立的对象

动手动脑2:

equals所在位置:

在Object类当中,而Object是所有类的父类,包含在jdk里面,但并不适合绝大多数场景,通常需要重写

public Boolean equals(Obejcts obj)

{

return (this ==obj);

}

quals的作用:

用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型

equals的基本使用:

boolean b=obj1.equals(obj2);

String类型比较不同对象内容是否相同,应该用equals,因为==用于比较引用类型和比较基本数据类型时具有不同的功能。

对象不同,内容相同,"=="返回false,equals返回true

String s1=new String(“java”);

String s2=new String(“java”);

 

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

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

同一对象,"=="和equals结果相同

String s1=new String(“java”);

String s2=s1;

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

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

如果值不相同,对象就不相同,所以"==" 和equals结果一样

String s1=”java”;

String s2=”java”;

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

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

动手动脑3:整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明

Length():public int length()//求字符串长度

String s=”dwfsdfwfsadf”;

System.out.println(s.length());

charAt():public charAt(int index)//index 是字符下标,返回字符串中指定位置的字符

String s=”Hello”;

System.out.println(s.charAt(3));

getChars():public int getChars()//将字符从此字符串复制到目标字符数组

String str = "abcdefghikl";

Char[] ch = new char[8];

str.getChars(2,5,ch,0);

replace():public int replace()//替换字符串

String s=”\\\”;

System.out.println(s.replace(“\\\”,”///”));

结果///;

toUpperase():public String toUpperCase()//将字符串全部转换成大写

System.out.println(new String(“hello”).toUpperCase());

toLowerCse():public String toLowerCase()//将字符串全部转换成小写

System.out.println(new String(“HELLO”).toLowerCase());

trim():public String trim()

String x=”ax  c”;

System.out.println(x.trim());//是去两边空格的方法

toCharArray(): String x=”abcd”;// 将字符串对象中的字符转换为一个字符数组

char myChar[]=x.toCharArray();

System.out.println(“myChar[1]”+myChar[1]);

课后作业:

请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。

设计思想:先输入一个字符串,将其拆分成字符然后在对每个字符进行加密,在将字符连接成字符串,然后输出

程序流程图:

源代码:

package dd;

import javax.swing.JOptionPane;

public class Dd {

public static void main(String[] args) {

// TODO 自动生成的方法存根

String input=JOptionPane.showInputDialog("请输入要加密的英文字符串");

int l;//字符串长度

l=input.length();

String s1=new String();//创建新的对象

String s2=new String();//创建新的对象

char c;//定义一个char变量

int i;//定义一个int变量

for(int x=0;x<l;x++)

{

s1=input.substring(x, x+1);

c=s1.charAt(0);//将字符串转换成char

i=c+3;//向后移3

c=(char)i;

s2+=c;

}

String output="结果是"+s2;

JOptionPane.showConfirmDialog(null,output);

}

}

结果截图:

时间: 2024-08-04 16:31:25

课后作业和动手动脑(字符串)的相关文章

课后作业及动手动脑

动手动脑 请查看String.equals()方法的实现代码,注意学习其实现方法. public class StringEquals { public static void main(String[] args) { String s1=new String("Hello"); String s2=new String("Hello"); System.out.println(s1==s2); System.out.println(s1.equals(s2));

课后作业和动手动脑

一,运行TestInherits.java 通过super调用基类构造方法,必是子类构造方法中的第一个语句. 二.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来? 构造函数的主要作用:构造函数是类的一个特殊方法,这个方法用来生成实例时由系统自动调用程序员无法直接调用.构造函数方法名同类名相同且参数为空.子类继承父类后默认继承父类的构造函数,即:子类存在隐含方法:super(),如果子类重写构造函数则子类也隐含调用super(). 三.运行Address.j

课后题以及动手动脑1 3题

出现Ljava.lang.Object;@ba8a1dc的原因 因为你从数据库读出数据后,存入到list集合上时,如果你没有指定要存入的数据的类型,系统会自动给你赋一个object类型,他是所以类的鼻祖,你取出数据要进行转型,转化成你自己想要的数据类型才能显示.它的值等于getClass().getName() + ‘@‘ + Integer.toHexString(hashCode()) Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例).at 标

课堂作业及 动手动脑问题整理

课堂作业一 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”. 程序: package com; public class Duixiang { public static void main(String[] args){ duixiang a=new duixiang(); a.out(); duixiang b=new duixiang(); b.out(); } } class duixiang{ stati

JAVA作业之动手动脑

1.枚举类型是引用类型,但例子输出结果引用的不是同一个类型.枚举类型可以有自己的属性(参数)和方法,枚举类型可以以独立的文件存在. 2.第一个"X+Y="+X+Y的运行结果是默认为先加一个字符再加一个字符,第二个X+Y+"=X+Y"的运行结果是默认先加数字再加字符. 3.数值的二进制表示: 原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小. 反码::正数的反码与其原码相同:负数的反码是对其原码逐位取反,但符号位除外. 补

JAVA语法基础 动手动脑及课后作业

动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t);  // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //

JAVA 数组作业——动手动脑以及课后实验性问题

JAVA课后作业——动手动脑 一:阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 1.源代码 // PassArray.java // Passing arrays and individual array elements to methods //引用传递和按值传递 public class PassArray { public static void main(String[] args) { int a[] = { 1,

第七讲 数组动手动脑和课后作业

[动手动脑1] 数据作为方法参数示例代码 int[] arr= new int[ 24 ]; -- modifyArray( arr ); 阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. // PassArray.java // Passing arrays and individual array elements to methods public class PassArray { public static void ma

第四讲动手动脑集课后作业

一.动手动脑 1.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. 源代码: //huzejie20161016//生成指定数目的随机数import java.util.Scanner;public class Suijishu { public static void main(String[] args) { System.out.print("请输入要输出多少个随机数:"); Scanner s = new Scanner(System.in); int n