一.实验目的:
(1)掌握常用的String,StringBuffer(StringBuilder)类的构造方法的使用;
(2)掌握八种基本类型对应的包装类,以及他们之间的区别与联系。
(3)掌握字符串的比较方法,尤其equals方法和==比较的区别;
(4)掌握String类常用方法的使用;
(5)掌握字符串与字符数组和byte数组之间的转换方法;
(6)Date,Math, PrintWriter,Scanner类的常用方法。
二.实验内容
1编写一个类MyInteger,类中包含一个int数据成员保存这个对象表示的int值,包含一个无参构造方法,一个有参构造方法,包含isEven(),isOdd(),和isPrime()三个方法,返回boolean值表示该整数是否是偶数,奇数,素数。
package project5;
import java.util.*;
public class MyInteger {
private int n;
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
int n=input.nextInt();
MyInteger m=new MyInteger(n);
System.out.println("n是否为偶数:"+m.isEven());
System.out.println("n是否为奇数:"+m.isOdd());
System.out.println("n是否为素数:"+m.isPrime());
}
public MyInteger() {
}
public MyInteger(int n) {
this.n=n;
}
public boolean isEven() {
if(this.n%2==0)
return true;
return false;
}
public boolean isOdd() {
if(n%2==0)
return false;
return true;
}
public boolean isPrime() {
for(int i=2;i<=Math.sqrt(n);i++)
if(n%i==0)
return false;
return true;
}
}
2.二进制数转换为十六进制数
package project5;
import java.util.*;
public class Change2To16 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
System.out.println("输入二进制数:");
String n=input.next();
int a=Integer.parseInt(n, 2);//先转化为10进制
System.out.println("16进制数为:"+Integer.toHexString(a));
}
}
3.将十进制转换为二进制
package project5;
import java.util.*;
public class Change10To2 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
System.out.println("输入10进制数:");
int n=input.nextInt();
System.out.println("2进制数为:"+Integer.toBinaryString(n));
}
}
4. 一些网站设定了一些制定密码的规则。编写一个方法,检验一个字符串是否是合法的密码。假设密码规则如下:
(1)密码必须至少有8个字符。(2)密码只能包括字母和数字。
(3)密码必须至少有2个数字。
编写一个程序,提示用户输入密码,如果该密码符合规则就显示“Valid Password”,否则显示“Invalid Password”。
package project5;
import java.util.*;
public class MyPassword {
final static int a=8;
final static int b=2;
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请设置密码:");
String s=input.nextLine();
check(s);
}
public static void check(String s) {
int x=0,y=0;
for(int i=0;i<s.length();i++) {
if(Character.isDigit(s.charAt(i)))
x++;
if(Character.isAlphabetic(s.charAt(i)))
y++;
}
if(s.length()<a||x<b||x+y<s.length())
System.out.println("Invalid Password");
else
System.out.println("Valid Password");
}
}
5.使用下面的方法头编写一个方法,找出某个指定字符在字符串中出现的次数:public static int count(String str,char a)
例如,count(“Welcome”,’e’)返回2.编写一个测试程序 ,提示用户输入一个字符串,在该字符串后紧跟着一个字符,然后显示这个字符在字符串中出现的次数。
package project5;
import java.util.*;
public class Seeking {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
System.out.println("输入字符串以及要统计的字符:");
String str=input.nextLine();
char a=input.nextLine().charAt(0);
System.out.println(a+"出现的次数为:"+count(str,a));
}
public static int count(String str,char a) {
int sum=0;
for(int i=0;i<str.length();i++)
if(a==str.charAt(i))
sum++;
return sum;
}
}
6. Java 提供了3 个日期类:Date、Calendar 和DateFormat。其中,Date 类主要用于创建日期对象并获取日期,Calendar 类可获取和设置日期,DateFormat 类用来设置日期的格式。Java 语言规定的基准日期为1970.1.1 00:00:00 格林威治(GMT)标准时间,当前日期是由基准日期开始所经历的毫秒数转换出来的。
import java.util.*;
import java.text.*;
public class KY5_10
{
public static void main (String args[])
{
Date today = new Date(); //当前日期和时间
SimpleDateFormat sdf;
sdf= new SimpleDateFormat("yyyy 年MM 月dd 日hh 时mm 分ss 秒 a EEEEE");
System.out.println("当前日期和时间: "+sdf.format(today));
long hms=System.currentTimeMillis(); //当前时间的毫秒数
System.out.println("当前时间的毫秒数="+hms);
Date tomorrow = new Date(hms+24*60*60*1000);
System.out.println("明天是"+sdf.format(tomorrow));
Calendar now = Calendar.getInstance();
int year =now.get(Calendar.YEAR); //年份
int month=now.get(Calendar.MONTH)+1; //月份
int day = now.get(Calendar.DATE); //日期
System.out.print("今天是"+year+"年"+month+"月"+day+"日");
int week = now.get(Calendar.DAY_OF_WEEK); //星期
switch (week)
{
case 1: System.out.println(" 星期日");break;
case 2: System.out.println(" 星期一");break;
case 3: System.out.println(" 星期二");break;
case 4: System.out.println(" 星期三");break;
case 5: System.out.println(" 星期四");break;
case 6: System.out.println(" 星期五");break;
case 7: System.out.println(" 星期六");break;
}
}
}
7. Math 是一个最终类,含有基本数学运算函数。创建使用Math 类的应用程序,程序中使用如指数运算、对数运算、求平方根、三角函数、随机数等,可以直接在程序中加Math.前缀调用。
package project5;
import java.util.*;
public class Mathematics {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
System.out.println("输入一个数:");
double n=input.nextDouble();
operations(n);
}
public static void operations(double n) {
System.out.println("n的平方为:"+Math.pow(n, 2));
System.out.println("n的n次方为:"+Math.pow(n, n));
if(n>=0) {
if(n==0) {
System.out.println("n没有对数!");
System.out.println("n的平方根为:"+Math.sqrt(n));
}
else
{
System.out.println("n的自然对数为:"+Math.log(n));
System.out.println("n的以10为底的对数为:"+Math.log10(n));
System.out.println("n的平方根为:"+Math.sqrt(n));
}
}
else {
System.out.println("n没有对数和平方根!");
}
System.out.println("sinn="+Math.sin(n));
System.out.println("cosn="+Math.cos(n));
System.out.println("tann="+Math.tan(n));
System.out.println("asinn="+Math.asin(n));
System.out.println("acosn="+Math.acos(n));
System.out.println("atann="+Math.atan(n));
if(n>=1)
System.out.println("产生0——"+(int)(n-1)+"的随机数:"+(int)(Math.random()*n));
}
}