十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
import java.util.Scanner;
我们提供的服务有:网站设计制作、做网站、微信公众号开发、网站优化、网站认证、赤峰ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的赤峰网站制作公司
import java.util.Calendar;
public class Yugi {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入一个时间: ");
String[] strs = scanner.nextLine().trim().split("[^\\d]+");
scanner.close();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(strs[0]));
calendar.set(Calendar.MINUTE, Integer.parseInt(strs[1]));
calendar.set(Calendar.SECOND, Integer.parseInt(strs[2]));
calendar.add(Calendar.SECOND, 1);
System.out.format("下一秒是:%1$tH点%1$tM分%1$tS秒", calendar);
}
}
public static void main(String[] args) {
String[] name={"T恤","网球鞋","网球拍"};
String[] money={"¥245”,"¥570“,“¥320”};
System.out.println("*******************************");
System.out.println("请选择购买的商品编号:\n");
System.out.println("1.T恤 2.网球鞋 3.网球拍");
System.out.println("*******************************\n");
Scanner input=new Scanner(System.in);
Boolean type=true;
while (type) {
System.out.println("请输入商品编号");
int no=input.nextInt();
System.out.println(name[no]+"\t"+money[no]+"\n");
System.out.println("是否继续?(y/n)");
if (input.next().equals("n")) {
type=false;
}
}
System.out.println("程序结束!");
}
第一题: 元素的复制
import java.util.Arrays;
public class ArrayDemo {
public static void main(String[] args) {
int[] scores = {91,85,98,62,78,93};
int[] newScores=Arrays.copyOfRange(scores, 0, 5);//复制元素, 左开右闭区间[0,5)
System.out.println(Arrays.toString(newScores));//调用数组工具类的方法转成字符串并打印
}
}
第二题: 这题虽然使用集合更方便 , 但却是非常好的一维数组的训练题目.
解法一: 集合解决 随机产生7个不重复的数字很简单
import java.util.HashSet;
import java.util.Random;
public class NumberTest {
public static void main(String[] args) {
HashSetInteger set= new HashSetInteger();//元素不可重复的无序集合
Random rd=new Random();//随机产生器
while(set.size()7) {
set.add(rd.nextInt(36)+1);//产生1~36的随机数
//如果元素重复, 那么添加不上去
}
System.out.println(set);
}
}
解法二:一维数组 ,解决产生7个数字, 并升序排列
int[] nums 数组存储1~36个数组
boolean[] flags 数组存储的是和nums数组一一对应的true或者false,如果使用了就标记为true.,如果没有使用标记为false,
例如 随机产生了一个下标0 ,那么查看flags[0] ,如果是true, 那么说明该元素已经使用了,重新产生一个随机数, 如果是false ,那么表示nums[0]没有被使用
具体代码如下(稍微留个尾巴, 就是中不中的判断, 可以把两个数组都升序排序,然后元素一一比较,全部相同就是中了)
import java.util.Arrays;
import java.util.Random;
public class NumberDemo {
public static void main(String[] args) {
int[] nums= new int[36];//长度为36的数组 ,默认全是0
for (int i = 0; i nums.length; i++) {//利用for循环赋值1~36
nums[i]=i+1;
}
boolean[] flags=new boolean[nums.length];//长度和nums相同的数组,默认值全是false ,表示全部没有使用过
//用boolean值表示对应的nums里的元素是否被使用
int[] result=new int[7];//存储结果
Random rd = new Random();
for (int i = 0; i result.length; i++) {
int temp=rd.nextInt(nums.length);//随机产生下标
//System.out.println(Arrays.toString(result));
if(flags[temp]) {//如果已经被使用,那么i-1,并在此循环
i--;
//System.out.println("号码"+nums[temp]+"已经存在.再次循环");
}else {
result[i]=nums[temp];
flags[temp]=true;//标记true表示已经使用了
}
}
System.out.println("原始排序:"+Arrays.toString(result));
Arrays.sort(result);//升序排列
System.out.println("升序排列:"+Arrays.toString(result));
}
}
看了一下,计算方式和结果应该都是正确的,而这里之所以报错,目测应该是没引进来Collections这个工具类:
import java.util.Collections;
引进来应该就可以了。
import java.util.Arrays;
public class Paixu {
public static void main(String[] args){
int[] array1 = {1, 31,11, 41,21, 51};
int[] array2 = {53, 13,33,23, 43, 3};
int[] array3 =new int[array1.length+array2.length];
//复制array1到array3
System.arraycopy(array1, 0, array3, 0, array1.length);
//复制array2到array3
System.arraycopy(array2, 0, array3, array1.length, array2.length);
//Arrays.sort(array3);这个方法直接可以让数组直接快速排序
System.out.println(Arrays.toString(array3));
//冒泡排序
for(int x=0;xarray3.length;x++){
for(int y=x+1;yarray3.length;y++){
if(array3[x]array3[y]){
int temp=array3[x];
array3[x]=array3[y];
array3[y]=temp;
}
}
}
System.out.println(Arrays.toString(array3));
}
}