尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Java代码出错的地方

Java代码出错的地方 目录冒泡排序冒泡排序先按数组下标大小从小到大访问每两个元素取出来比较if)交换要比较data.length-1次第一次完成所有元素的比较在数组最右边得到最大值还有从下标0开始data.length-1-第几次个元素没有比较int[] data {128,60,93,142,86};//data:60 128 93 142 86//temp:120 128 186 142 172//按照体重升序排序//数字 100 - 公斤 * 2//60 128 142 86 93//出错原因只想到当前索引下的值如果变化没想到下一个变不变就去比较大小int a0;for(int i0;idata.length-1;i){for(int j0;jdata.length-1-i;j){if(data[j]100)adata[j]*2;elseadata[j];if(adata[j1]){data[j]data[j]^data[j1];data[j1]data[j]^data[j1];data[j]data[j]^data[j1];}}}for(int x:data){System.out.println(x);}正解for(int x 0;x data.length -1;x){ for(int y 0;y data.length -1 -x;y){ int a data[y] 100 ? data[y] 1: data[y]; int b data[y1] 100 ? data[y1] 1: data[y1]; if(a b){ int z data[y]; data[y] data[y 1]; data[y 1] z; } } } for(int x : data){ System.out.println(x); }char[] data {d,A,a,B,D,c,b,C};//排序A a B b C c D d// 65 97 66 98 67 99 68 100// 65 65.566 66.567 67.5 //ascii 90 ascii-31.5for(int i0;idata.length-1;i){ for(int j0;jdata.length-1-i;j){ double adata[j]97?data[j]-31.5:data[j]; double bdata[j1]97?data[j1]-31.5:data[j1]; if(ab){ char cdata[j]; data[j]data[j1]; data[j1]c; } } } for(char c:data){ System.out.println(c); } }思路的巧妙地方把变化的值和不变化的值都用一个新的变量接比较的是变化的值交换的还是原来的值按位与按位或左移右移import java.awt.*; import java.awt.image.*; public class 外挂{ public static void main(String[] args)throws Exception{ Thread.sleep(5000); //创建一个可以实现人工智能的机器人对象 Robot ro new Robot(); Rectangle re new Rectangle(1024,768); //利用机器人对象对当前的屏幕进行截取 形成一个缓冲图片 BufferedImage image ro.createScreenCapture(re); a:for(int x 50;x image.getWidth();x){//图片的宽度 for(int y 0;y image.getHeight()-50;y){//图片的高度 int color image.getRGB(x,y);//得到(x,y)像素点的颜色 int red color 16 255; int green color 8 255; int blue color 255; //判断是不是纯红色 if(red 255 green 0 blue 0){ //移动光标 ro.mouseMove(x170,y); break a; //开枪 //ro. }这里右移完成最后8位是红色所占的位再按位与完成只有红色位是红色的值其他位都是0red:XXXXXXXX YYYYYYYY ZZZZZZZZ WWWWWWWW 16XXXXXXXX XXXXXXXX XXXXXXXX YYYYYYYY 25500000000 00000000 00000000 1111111100000000 00000000 00000000 YYYYYYYYint newColor red 16 | green 8 | blue; image.setRGB(x,y,newColor); /** red:00000000 XXXXXXXX 00000000 00000000 16 gre:00000000 00000000 YYYYYYYY 000000008 | blu:00000000 00000000 00000000 ZZZZZZZZ | 00000000 XXXXXXXX YYYYYYYY ZZZZZZZZ 结果:00000000 XXXXXXXX YYYYYYYY ZZZZZZZZZ */二进制相加可以用按位|一个随机数决定另一个随机数//亲爱的XXX用户 您已被幸运女神砸中,您已获得XXX[100-999]钱提现资格 //目前您已有XXX储备金离成功还需要筹备XXX元 int txMon (int)(Math.random() * 900 100);//600 txMoney new BigDecimal(txMon); int mon (int)(Math.random() * (txMon - 1) 1);//[1,599] money new BigDecimal(mon);比如提现金额产生600那么储备金只能在1到599之间从结果出发想情况/**1使用Scanner获取玩家的选择玩家输入0表示剪刀 1代表石头 2代表布 -1则表示退出2利用Math.random()生成电脑随机的选择3通过判断条件来决定游戏结果玩家和电脑选择相同则平局否则按照剪刀胜布,石头胜剪刀布胜石头的规则判断胜负*/分析题目是玩家出电脑出用数组存储玩家出的电脑出的从结果想情况String[] data {剪刀,石头,布}; Scanner sc new Scanner(System.in); while(true){ System.out.println(请选择:0[剪刀] 1[石头] 2[布] -1[退出]); int num sc.nextInt();//客户输入的选项 if(num -1){ System.out.println(游戏结束); break; }else if(num 0 || num 2){ System.out.println(输入的选项不存在); continue;//下一个循环 } //num是0 1 2 int id (int)(Math.random() * 3);//电脑随机选择一个 System.out.println(您的选择: data[num]); System.out.println(电脑选择: data[id]); if(num id){ System.out.println(平局); }else if(num 0 id 2 || num 1 id 0 || num 2 id 1){ System.out.println(恭喜你 赢啦); }else{ System.out.println(你输了 再接再厉); } }判断字符串是不是纯数字public static void main(String[] args){ System.out.println(check(123木头人));//f System.out.println(check(etoak666));//f System.out.println(check(12345));//t System.out.println(check(458ty56));//f System.out.println(check()); }方法一将字符打碎统计数字的个数如果数字的个数等于字符串的长度》纯数字方法二将字符串打碎如果遍历到非数字返回false结束方法如果for循环结束则遍历结束返回false;char[] datastr.toCharArray(); for(char x:data){ if(x0 x9){ return false;} } return ture;方法三删除纯数字长度和为0就是纯数字需排除原来就是“‘return str.length()!0 str.repalceAll(”[0-9],).length()0;对字符串去重------整理------三目String str HelloWorld;//对字符串去重//HeloWrd方法一每次访问首字母并将首字母去重直到里面没有元素停止方法二创建一个新容器装新元素未重复的循环是含有变化的-------整理字符串思想数组思想字符串可以像数组一样访问封装一个球类创几号球显示这个球的球号和颜色String color黄绿蓝紫黑红白灰橙; String[] datacolor.split(); if(number0 numberdata.length) return number号球data[number-1]色; return 未知号球;忘记合法性判断了出现跳过数组元素的现象下标增长与集合长度缩短不同步ArrayListInteger list new ArrayList();Collections.addAll(list,55,66,77,88,99);//利用list.remove(下标)删除集合里面所有元素错因按下标递增访问数组中的元素然后删除》当下标增长到大于等于数组的长度便不能访问了集合思想分组思想返回的是MapT,ListR map一个组内有相关内容的重复可用在SessionSet获得未上映的部分Session放进新Set展示Session里的Film对象相关信息通过电影名在新set里能不能获得电影对象展示所选Film的全部场次信息一对多分组编号那个组里的那一个收集思想注意返回的是MapR,T截取思想(过滤)也适合与字符串filter():是流中所有的元素进行的操作所有都符合条件女生都及格了吗部分符合条件://谁的名字里面有叠字打印出来//思路:选出叠字打印list.stream() .filter((name)-{ char[] dataname.toCharArray(); return IntStream.range(0,data.length-1)//得到下标 .anyMatch((x)-data[x]data[x1]);//判断有没有叠字 }).forEach(System.out::println);没有符合条件的:没有人考100吗去重收集list集合里所有的名字要求名字不能有重复的如果还想保存在list集合里先map想要展示的视图)再distinct没下标转化成有下标的//TreeSetInteger set默认是升序排序但是想要降序遍历但是set没有下标需要把set装进ArrayList集合里去倒着遍历。开关思想统计一个文件里有多少个有效行数空行注释不算定义控制开关变量遇到/*把开关设置成关遇到*/把开关打开只有在开关开着的条件下才统计行数
返回列表