/*
编写Java程序, 打印几个特定的ASCII码,包括数组0和9,大写字母A和Z ,小写字母a和z
*/
public class PrintAscii {
public void dispAscii(char ch) { //输入的字符
int ascii =(int) ch; //将字符转换为“ASCII码”
System.out.println(ch+"的Ascii码是: "+ascii);
}
public static void main(String[] args) {
PrintAscii pa = new PrintAscii();
pa.dispAscii('0'); //48
pa.dispAscii('9'); //57
pa.dispAscii('A'); //65
pa.dispAscii('Z'); //90
pa.dispAscii('a'); //97
pa.dispAscii('z'); //122
}
}
/*
编写程序,对是哪个整型变量进行排序,按照从小到大的顺序排列
*/
public class SortABC {
public static void main(String[] args) {
int a = 100, b = 5, c = 307;
int t;
if(a>b){
t=a;
a=b;
b=t;
}
if(a>c){
t=a;
a=c;
c=t;
}
if(b>c){
t=b;
b=c;
c=t;
}
System.out.println("排序之后: a="+a+", b="+b+", c="+c);
}
}
/*
用if语句的嵌套,根据学生成绩判断等级
*/
public class IfDemo {
public static void main(String[] args) {
int score = 95;
String grade;
if (score >= 90) {
grade = "优";
}else if(score >= 80){
grade = "良";
}else if(score >= 70){
grade = "中";
}else if(score >= 60){
grade = "及格";
}else {
grade = "不及格";
}
System.out.println("学生的成绩为: "+score);
System.out.println("学生的等级为: "+grade);
}
}
/*
用switch语句,根据传入的月份的参数,显示该月有多少天。程序中假定2月份固定为28天,不考虑闰年问题
*/
public class SwitchDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入月份: ");
int month = scanner.nextInt();
int days = 0;
switch (month) {
case 2 : days = 30; break;
case 4 : days = 30; break;
case 6 : days = 30; break;
case 9 : days = 30; break;
case 11 : days = 30; break;
default : days = 31;
}
System.out.println(month+"月有"+days+"天");
}
}
/*
编写程序,使用while循环计算1+2+3+...+100的值
*/
public class Sum100 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while (i <= 100) {
sum += i;
i++;
}
System.out.println("1到100的累加和是: "+sum);
}
}
/*
编写程序,计算1+1/3+1/5+1/7+...+1/(2×n+1)的值。
要求计算到1/(2×n+1)小于0.00001时为止。当循环结束时,显示上述表达式中的n值,以及计算结果
*/
public class DoWileDemo {
public static void main(String[] args) {
int n = 1;
double sum = 1.0,temp;
do {
temp = 1.0/(2*n+1);
sum += temp;
n++;
} while (temp >= 0.00001);
System.out.println("循环结束时n的值为: "+(n-1));
System.out.println("计算出来的结果是: "+sum);
}
}
/*
编写程序,将32-126之间的95个字符显示在屏幕上。
为了美观,要求小于100的码值前填充一个0,每打印8个字符
*/
public class ShowAscii {
public static void main(String[] args) {
String temp = "";
for (int i = 32; i <= 126; i++) {
//如果码值小于100,则码值前会填充一个0
temp = i < 100 ?("0"+i):(""+i);
System.out.print(temp+"="+(char)i+" ");
if ((i - 31) % 8 == 0) {
System.out.print("\n");
}
}
}
}
/*
用for循环编写九九乘法表
*/
public class ChengFaBiao {
public static void main(String[] args) {
int i,j;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println("\n");
}
}
}
/*
打印3~100之间的素数,每行打印6个数
*/
public class SuSu {
//素数 : 素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
public static void main(String[] args) {
System.out.println("3~100之间的素数有: ");
boolean flag;
int count = 0; //统计素数的个数
for (int i = 3; i <= 100; i++) {
//先假定该数为素数
flag = true;
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0) {//能其其他数整除,其不是素数
flag = false;
break;
}
}
if (flag) { //如果是素数,则输出该素数
System.out.print(i+"\t");
count++;
if (count % 6 == 0) {
System.out.println();
}
}
}
}
}
/*
获得任意一个时间的下一天
*/
public class NextDay {
public static void main(String[] args) {
/*
java.util.Date类的底层实现是通过一个long类型的整型数据来保存日期,
这个值记录的是任何一个时间距1970年1月1日,0点0分0秒的毫秒数。
*/
Date now = new Date(); //获得当前时间
//打印下一天的时间
System.out.println(getNextDate(now)+"==========");
}
//获得下一天的时间
private static Date getNextDate(Date d) {
/*
增加的时间为一天。
一天有24小时,一小时有60分钟,一分钟有60秒,1秒为1000毫秒
*/
long addTime = 1 * 24 * 60 * 60 * 1000; //表示一天时间的毫秒数
System.out.println(addTime+" ---- ");
//用毫秒数构造新的日期
Date date = new Date(d.getTime() + addTime);
return date;
}
}
/*
将某个时间以固定的格式转换为字符串
*/
public class DateFormat {
public static void main(String[] args) {
//现在的时间
Date now = new Date();
//打印现在时间的字符串格式
System.out.println(dateFormatStr(now));
}
//将Date类型格式的时间,转换为特定字符串格式的时间 的方法
private static String dateFormatStr(Date now) {
//定义字符串的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(now);
return str;
}
}
编写一个截取字符串的函数,输入一个字符串和字节数,输出按字节数截取的字符串。但要保证函数不被截半个,如"我ABC" 4,应该截取 “我AB”,输入“我ABC汉DEF” 6,应该输出 “ABC”,而不是"我ABC+汉的半个"。
试题分析: 容易产生混淆的是中文字符和英文字符。要注意的是: 中文字符占两个字节,英文字符占一个字节。(此程序:如果一个汉字被截取了1个字节的话,是会被丢弃的)
/* 编写一个截取字符串的函数,输入一个字符串和字节数,输出按字节数截取的字符串。 但要保证函数不被截半个,如"我ABC" 4,应该截取 "我AB",输入“我ABC汉DEF” 6,应该输出 “ABC”, 而不是"我ABC+汉的半个"。 试题分析: 容易产生混淆的是中文字符和英文字符。要注意的是: 中文字符占两个字节,英文字符占一个字节。 (此程序:如果一个汉字被截取了1个字节的话,是会被丢弃的) */ public class InterceptionStr { //此程序:如果一个汉字被截取了1个字节的话,是会被丢弃的。 static String ss; //要进行截取操作的字符串 static int n; //截取的字符串的字节数 public static void main(String[] args) { System.out.println("请输入字符串: "); Scanner sc1 = new Scanner(System.in); ss = sc1.next(); //将Scanner对象中的内容以字符串的形式取出来 System.out.println("请输入字节数:"); Scanner sc2 = new Scanner(System.in); n = sc2.nextInt(); //将Scanner对象中的内容以数值的形式取出来 //调用截取字符串的方法 interception(setValue()); //传给该方法的参数为: 一个字符串数组 } /* 将“字符串”转换为“字符串数组“ */ public static String[] setValue() { //创建一个字符串数组 String[] string = new String[ss.length()]; //将”字符串“中的每个"字符"取出且存入到"字符串数组string"中 for (int i = 0; i < string.length; i++) { //只包括i,不包括i+1 string[i] = ss.substring(i, i+1); //将字符串ss中的第i个"字符"取出,放入“字符串数组”中 } return string; //将这个字符数组返回 } /* 截取字符串的方法 */ public static void interception(String [] string) { int count = 0; String pattern = "[\u4e00-\u9fa5]"; //汉字的正则表达式 System.out.println("以每" + n + "字节划分的字符串如下所示: "); for (int i = 0; i < string.length; i++) { //判断字符串数组中的每一个字符串是“汉字”还是“数字” //将字符数组中的每一个元素与正则表达式进行匹配,如果相同则返回true,同时计算该要被截取的字符串ss的字节数: count if (string[i].matches(pattern)) { count = count + 2; //如果当前字符是汉字,计时器count就+2 } else { count = count + 1; //如果当前字符不是汉字,计时器count+1 } if (count < n) { //如果当前计时器count的值小于n,则输出当前字符串 System.out.print(string[i]); } else if (count == n) { //如果当前计时器count的值等于n,则输出当前字符串 System.out.print(string[i]); count = 0; //因为一次截取n个字节,现在已经够了,重新开始截取下一次的n个字节 System.out.println(); } else { count = 0; //如果当前计时器count的大于n。则计算器count清零,接着执行外部循环 System.out.println(); } } } }
- 如何判断回文数。
有这样一类数,它们顺着看和倒着看是相同的数,该数即为"回文数"
例如: 121、656、2322,这样的数字被称为回文数字。- 试题分析:可以通过该数字倒置的位置栏判断它是否是回文数字。
/* 如何判断回文数。 有这样一类数,它们顺着看和倒着看是相同的数,该数即为"回文数" 例如: 121、656、2322,这样的数字被称为回文数字。 试题分析:可以通过该数字倒置的位置栏判断它是否是回文数字。 */ public class Palindrome { public static void main(String[] args) { int n; System.out.println("请输入一个整数: "); Scanner scInt = new Scanner(System.in); n = scInt.nextInt(); if (isPalindrome(n)) { System.out.println(n + "是回文!"); } else { System.out.println(n + "不是回文!"); } } //判断是不是回文数 private static boolean isPalindrome(int n) { //调用方法,将要判断的数进行倒置 int m = reverse(n); if (m == n) { //如果不倒置数 = 倒置数,有其是回文数 return true; } else { return false; } } //将传入的数进行倒置 private static int reverse(int i) { int s, j = 0; s = i; while (s != 0) { // *10 的原因: 倒置的话每次位数要升一级,自然要*10 j = (j * 10) + (s % 10); s = s / 10; } return j; } }
Scanner in = new Scanner (System.in);
System.out.println("请输入一个整数:");
int shuzhi = in.nextInt();
while (shuzhi>f1) {
f3=f1+f2;
f1=f2;
f2=f3; //出现所有的Fibonacci数,且让f2也当过所有的...数
}
if (shuzhi==f2) {
System.out.println(shuzhi+"是Fibonacci数");
}else
System.out.println(shuzhi+"不是Fibonacci数");
/*
* 思想:设置max 和先输入一个数,并设其为最大值,然在循环语句中输入剩余的四个数,符合条件则让它是最大值,不是则继续循环,输入数字。
*/
import java.util.Scanner;
public class shijie {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int soum1,max,x,weishu=1;
System.out.println("请输入一个数");
soum1 = in.nextInt();
max = soum1;
while(weishu<=4){
System.out.println("请输入一个数");
x = in.nextInt();
if(x>max){
max = x;
}
weishu++;
}
System.out.println("最大值为:" +max);
}
}
int year =2018; float money = 10l;
while (money <=15) {
money *= 1.04f;
year++;
}
System.out.println("超过的时间是:" +year );
//题目:题目四:输入一个正整数,各位数的数字之和。
/*
* 原理:先用求余(%),求出最后一位数的数,--相加
* -----有此效果的原因:%后会有一个余数(如789/10=78...9(余9),那用上%号就收集此余数
* 然后用除法 (/),删除刚刚已经用过的最后一位数,-----
* -----有此效果的原因:/ 后由于整数求除的性质,+任何数10 = 就是有一个整数带加一个余数,(如789/10=78...9(余9),结合整除小数点后没有内容,就去掉了最后一位数)
*
*/
//声明的变量有:weishu,sum;
import java.util.Scanner;
public class One {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int weishu ,sum=0,a;
System.out.println("请输入一个数");
weishu = in.nextInt();
while (weishu !=0){ //输入的数不等于0,才能继续操作
//收集位数的最后一项,且相加
a = weishu%10;
sum = sum +a;
//除去刚已用过的位数,形成一个新的数
weishu = weishu/10;
}
System.out.println("各位数之和为" +sum);
}
}
/*
求数列s=1+12+123+1234+... 123456789的前九项的和
*/
public class One {
public static void main(String[] args) {
int sum =0 ,i= 1,a= 0 ;
int weishu = 9;
while (i<=weishu) {
a= a*10+i;
sum +=a;
i++;
}
System.out.println(sum);
}
}
/*
计算sum=1-1/2!+1/3!-... (-1)^(n-1)/n!
*/
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
double z =0,x=1; int y=1,n;
System.out.println("请输入一个数" );
n = in.nextInt();
while (y<=n) {
z = z+x;
y= y+1;
x= x*(1.0/y);
}
System.out.println("sum:" +z );
}
}
public class Demo {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
System.out.println("请输入一个数");
int soum1 = in.nextInt();
boolean soum2 = false;
for (int i =2;i<soum1;i++) {
if (soum1%i == 0) {
soum2 = true;
}
}
if (soum2) {
System.out.println("此数不是素数");
}
else {System.out.println("此数是素数");
}
}
}