[笔记][Java]Scanner的一个注意事项

序:

最近入坑Java开发,学习到使用scanner获取用户输入,并且发现了一些入门的坑点,在此写一点笔记方便以后查找。

问题代码:

import java.util.*;

public class Mathmatic {

	public static void main(String[] args) {
		Mathmatic math = new Mathmatic();
		int result;
		result = math.compare();
		System.out.println(result);
		result = math.isPrime();
		System.out.println(result);
	}
	
	public int compare() {
		int num1,num2;
		Scanner input = new Scanner(System.in);
		System.out.println("请输入第一个数字:");
		num1=input.nextInt();
		System.out.println("请输入第二个数字:");
		num2=input.nextInt();
                input.close();
		if(num1==num2) {
			return 0;
		}else if(num1>num2) {
			return 1;
		}else if(num1<num2) {
			return -1;
		}
		return 2;
	}
	
	public int isPrime() {
		int prime;
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个数字:");
		prime=input.nextInt();
		for(int i=2;i<prime;i++) {
			if(prime%i==0) {
				return 0;
			}
		}
		return 1;
	}
}

此段代码在运行过程中,如果调用了compare函数之后,再调用isPrime函数,将会报以下错误。

错误定位:

 

		num2=input.nextInt();
             -->input.close();<--

这是因为在函数中,声明了一个scanner对象,并且调用了close方法。这可能是由于所有的scanner类共享一个输入流,当其中一个调用关闭函数的时候,所有的scanner对象都关闭了。

解决方法:

在程序的最后,再使用close方法

[转载][笔记]Java 中的 static 使用之静态方法

1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如:

如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。如:

2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量,如下所示:

3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。如:

[笔记]Laravel开发笔记-1

说说最近我干了啥.距离上次发文章已经20天了,这段时间里我跑去海南玩了,回来就写了一周的laravel项目了。这次是第一次写,写的挺菜的,被dalao摁在地面上摩擦了,不过还好经过这次开发,我还是学到了一些东西,在这里Mark一下,方便以后差错。

Laravel Auth组件之坑

这次是第一次用auth组件来开发登录模块。由于应用的美工已经规定好了,我就直接手动认证了。

attempt()方法

文档写的是

attempt(["email"=>$email,"password"=>$password])

,这个组件是只能用email来作为username,不能自定义username。

login()方法

login组件需要传入的参数是用户实例。

啥是用户实例?

用户实例的意思是你一定查到的那一条数据,比如你通过ORM查到了一条password符合的数据,此时这条数据就是一个用户实例。

为啥跳转后Auth::check()返回值为false?

可能的原因如下:

  1. modal继承错误
  2. 中间件组件未加载
  3. 数据库字段错误

modal继承错误:

modal原代码:


namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
}

要把代码改成这样子才行!

modal改动后的代码:


<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;//要改成继承这个Auth组件
class User extends Authenticatable
{
}

中间件组件未加载:

Kernel原代码:

有可能是这个组件被注释了,此时需要的是取消注释。

数据库字段错误:

login方法定位用户靠的是数据库的字段名id。

这个字段名必须是id,不能是Id、iD、ID。不然Auth组件将不能够正常工作

logout方法

数据表,必须有remember_token用于存储辨识用户session的凭证。

不然laravel会报错。

 

 

 

 

 

 

[笔记]关于Laravel传值的一个笔记

若出现下图所示的报错

可能出错的定位在下图

简明的原因:

input中的值写错了

解决方法:

检查前端与后端的数据名称是否相同,大小写,下划线,特殊字符的位置等

详细的原因:

有可能是因为前端传参至控制器时,input里面的数组名写错了,此处是前端是Student[],而后端写成了input(‘student’)导致laravel无法获取到正确的值,直接报错

Rule34自动爬虫脚本

Rule34-Downloader

php爬虫,用于爬Rule34图站的数据,自动下载特定标签的图片


特性:

– 支持指定标签,多标签搜索
– 支持轮候任务
– 支持微信通知运行状态
– 低占用


安装向导:

1. 安装php环境
2. 把该程序拖至php.exe同目录中
3. 编辑php内的PATHS,该常量用于定义爬下来的数据的缓存路径
4. 保存
5. 打开ready.txt,按照格式填入待下载标签
6. 保存
7. 运行start.bat


标签格式

female:0:42
标签:开始的pid数(0开始的42的倍数):结束的pid数(0开始的42的倍数,需要比开始的pid大)


下载地址

https://git.dev.tencent.com/7gugu/Rule34-Downloader.git


有问题反馈

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

  • 邮件(gz_7gugu@outlook.com)
  • 博客(https://www.7gugu.com)

尬吹

其实这玩意儿我去年(2018)二月就写好了,不过那时候处于要备考的节点了,就没太多的精力去管理,现在有空了就来把爬虫修好发上来

2019 To do…

0X00 尬吹


写在2018-12-31的最后10min,对2019年的一些展望和计划。

写完看了看感觉还有点难度,但今年都能跨过那个坎了,考个证书还不行么,加油!

Be myself!!!

OwO

0X01 To do


  1. 考好第一个学期的期末考[√]
  2. 去一次にほん[√]
  3. 买一个手办[√]
  4. 争取考过计二
  5. 争取整一个四级
  6. 用laravel写一个项目[√]
  7. 学python
  8. 学redis
  9. 少吹逼多干活

2019-1-27第一次更新:完成第1,2,3点,删掉第5点

2019-3-14第二次更新:完成第6点(帮学校写了个下载站)

URP突破1700次安装咯!

0x00 尬吹


真的难以置信,在短短的四个月中URP的安装量又提高了1200次,这真的让人感到一种难以言表的开心。在发布两年以后,仍然具有如此活力,在我看来是很难得的。一方面是Unturned这个游戏进入到了3.0-4.0的过渡状态,导致游戏人数迅速降低,另一方面则是该面板只能用于管理Unturned服务器,这严重的限制了面向的用户群体。但是在这些情况下,URP还是能够脱颖而出,被大家选择来使用,实属荣幸。

而且这次的统计数据是2018年初时开始统计的,如果过算上17年的数据,我预估应该是已经有3000-4000的安装量了。虽然这个面板从技术上面具有许多的问题,如php和html的混淆,函数的复用率低下,耦合性高,无路由的概念,都限制住了面板的继续发展。即使这些在Umarket中已经得到了部分的解决与改善,但我坚信在以后的日子中我仍需继续努力去进行更多的开发,来继续提高自己的代码水平。

0x01 后记


再次感谢大家能够选择URP进行服务器管理维护,谢谢大家的支持,如果可以的话,欢迎大家能给我发点赞助,谢谢了owo

[油猴脚本]TypeSounder-模拟机械键盘声

描述:

一个基于油猴插件的模拟机械键盘的声音,就是按下键后,就会发出机械按键声


安装:

  1. 安装油猴插件,地址https://tampermonkey.net/
  2. 添加插件
  3. 运行插件

脚本代码:

// ==UserScript==
// @name         TypeSounder
// @namespace    https://www.7gugu.com/
// @version      1.1
// @description  给按键加入机械键盘的触发声音
// @author       7gugu <gz7gugu@qq.com>
// @match        https://tampermonkey.net/documentation.php?version=4.8.5847&ext=fire&updated=true
// @grant        none
// @include *
// @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
    'use strict';
    var id=1;
         console.log("typesound已启动");
document.onkeydown=function(event){
    id++;
    $("body").append("<div id='key_sound_"+id+"'><audio id='player"+id+"' src='https://www.7gugu.com/wp-content/uploads/2018/12/music.mp3' preload='auto'>您的浏览器不支持 audio 标签。</audio></div>");
			 var e = event || window.event;
			 var player = $("#player"+id)[0]; /*jquery对象转换成js对象*/
            if(e && e.keyCode){
	if (player.paused){ /*如果已经暂停*/ player.play(); /*播放*/ }
			  }

        };
})();

GreasyFork地址:

https://greasyfork.org/zh-CN/scripts/375939-typesounder