第一天:
编程实现获取邮箱名字
import java.util.Scanner;
public class GetEmailName {
public static void main(String[] args) {
System.out.println(“输入email:”);
String e = new Scanner(System.in).nextLine();
//email地址e,传递到该方法,
//并得到方法返回的名字,保存到变量n
String n = getName(e);
System.out.println(n);
}
static String getName(String email) {
int index = email.indexOf(“@”);
if(index == -1) {//找不到
return “邮箱格式错误”;
}
//返回截取的结果
return email.substring(0, index);
}
}
index() 函数用于从列表中找出某个值第一个匹配项的索引位置,位置是从0开始的。
indexOf用于返回目标字符串在源字符串中的位置。
indexOf:返回特定子字符串第一次在源字符串中的位置。如果源字符中不存在目标字符,则返回-1。
Substring( , )用于截取字符串。
第二天:
求数字阶乘:
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
System.out.print(“输入整数,求阶乘:”);
int n = new Scanner(System.in).nextInt();
//调用f()方法,把n的值传递到f()方法,求阶乘
f(n);
}
public static void f(int n) {
if(n<0) {
System.out.println(“负数不可以求阶乘”);
return;//方法结束,返回到调用位置继续执行
}
if(n == 0) {
System.out.println(“0的阶乘是1”);
return;
}
long r = n;
for(int i=n-1; i>=1; i–) {
r *= i;
}
System.out.println(n+”的阶乘:”+r);
}
}
多次生成随机数,并打印第一次出现大于0.999 时的次数与生成的随机数
public class ForBreak {
public static void main(String[] args) {
// Math.random()可以产生[0,1)的随机浮点数
// >0.999
//写一个死循环, i变量用来计次
for(int i=1; ;i++) {
double d = Math.random();
if(d>0.999) {
System.out.println(“第”+i+”次产生了目标值,值为:”+d);
break;
}
}
}
}
第三天:
打印100以内除了尾数为3,5,7的所有数。
public class ForContinue {
public static void main(String[] args) {
for(int i=1;i<=100;i++) {
int y = i%10;//100以内的数,通过取余求出尾数
if(y==3 || y==5 || y==7) {
continue;//如果尾数为3 5 7 ,则跳过后面的打印,进行下一轮循环
}
System.out.println(i);
}
}
}
求质数:import java.util.Scanner;
public class PrimeNumber {
public static void main(String[] args) {
System.out.print(“请输入要判断的自然数:”);
int n = new Scanner(System.in).nextInt();
//调用getPrimeNumber()方法,判断n是否为质数
getPrimeNumber(n);
}
public static void getPrimeNumber(int n) {
if(n<2) {//此范围内的数均不为质数
System.out.println(n+”不是质数”);
return;//结束程序
}
if(n == 2) {
System.out.println(“2是质数”);
return;
}
//在 2到 1+n开方范围(数学理论),找能把n整除的值(这个值也称作因子)
//如果找到可以把n整除的第三个数,那n就不是质数,反之,n为质数
double max = 1+ Math.sqrt(n);//max保存的是查找因子的范围
//依次遍历范围内的所有数,验证是否存在n的因子
for(int i=2; i<max; i++) {
//判断n能不能被i整除,如果有,说明不是质数
if(n%i == 0) {
System.out.println(n+”不是质数”);
return;
}
}
//如果判断了范围内的所有值,没有能整除的,则说明n是质数
System.out.println(n+”是质数”);
}
}
第四天:
生成一个顺序数组,将这个数组的元素打乱顺序后输出。
import java.util.Arrays;
import java.util.Random;
public class ShuffleArray {
public static void main(String[] args) {
//调用f()方法,从方法获取一个int[]数组
int[] a = f();
//遍历打印数组数据
for(int i=0; i<a.length; i++) {
System.out.println(a[i]);
}
System.out.println(“/n/n—————-“);
//把a数组,传递到 shuffle() 方法打乱顺序
shuffle(a);
//打印乱序后的数组
System.out.println(Arrays.toString(a));
}
public static int[] f() {
//新建int[]数组,长度5
//再把它的内存地址存到变量 a
int[] a = new int[5];
//遍历访问5个位置,填入1,2,3,4,5
for(int i=0; i<a.length; i++) {
a[i] = i+1;
}
//返回数组,把数组返回到调用位置
//本质是把数组地址返回去
return a;
}
public static void shuffle(int[] a) {
for (int i = 0; i < a.length; i++) {
//随机下标j,范围:[0, a.length)
int j = new Random().nextInt(a.length);
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
第五天:
随机数组的归并问题:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class MergingArrays {
public static void main(String[] args) {
int[] a = suiJi();
int[] b = suiJi();
Arrays.sort(a);
Arrays.sort(b);
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
int[] c = heBing(a, b);
System.out.println(Arrays.toString(c));
}
private static int[] suiJi() {
int n = 5+ new Random().nextInt(6);
int[] a = new int[n];
for (int i = 0; i < a.length; i++) {
a[i] = new Random().nextInt(100);
}
return a;
}
private static int[] heBing(int[] a, int[] b) {
//新建数组
int[] c = new int[a.length+b.length];
//对新数组遍历
for(int i=0,j=0,k=0;i<c.length;i++) {
if(j>=a.length) {//j越界,b数组数据一个一个放入新数组
//c[i] = b[k];
//k++;
//continue;
System.arraycopy(b,k,c,i,b.length-k);
break;
} else if(k>=b.length) {//k越界,a数组数据一个个放入新数组
//c[i] = a[j];
//j++;
//continue;
System.arraycopy(a,j,c,i,a.length-j);
break;
}
//j和k,较小值放入i位置,并递增
if(a[j]<=b[k]) {
c[i] = a[j];
j++;
} else {
c[i] = b[k];
k++;
}
}
return c;
}
}
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/272942.html