nextInt和nextLine

有关于Java中的Scanner类,遇到了一个小问题。

/**
* author zk
*/
package test;

import java.util.Scanner;

public class TestScanner {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int number = sc.nextInt();

String str1 = sc.nextLine();

}

}

问题描述:代码中的第十四行用来接收从命令行输入的整数,然后在第十六行接收一个字符串。但在实际运行中发现,str1内并没有输入的字符串,它的值被传递为空串。
问题解决:Scanner类中的nextInt方法会从缓冲区读取用户输入的字符,遇到空格和换行停止读取,同时空格和换行是留在缓冲区的;而nextLine方法也会遇到空格和换行停止读取,但是会清除遇到的空格和换行。先使用nextInt后使用nextLine就会导致缓冲区内残存多余的空格或换行符,导致程序出错。
解决办法:在nextInt后增加一条nextLine语句,将剩余的空格或换行符清除。

/**
* author zk
*/
package test;

import java.util.Scanner;

public class TestScanner {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int number = sc.nextInt();

String receiver = sc.nextLine();

String str1 = sc.nextLine();

}

}

wsimport生成webservice客户端——SQLExecption导致XSD重名

最近使用Java的Web Service进行实验,制作一个代办事务列表程序,也就是SSD8课程的实验五。

我使用MySql数据库存储信息,其中,对于数据库的操作需要考虑异常的抛出,我随手就将抛出异常的类型定为SQLExecption 继续阅读“wsimport生成webservice客户端——SQLExecption导致XSD重名”

SSD8 TCP和UDP简单实现FTP 多线程

前言

《网络与分布计算》实验课上的代码,以往基本没用过java,趁这次机会好好了解一下java的基本用法。顺便也记录一下一些java中的巧妙方法。以下是基本效果。

源码地址

源代码

服务端
服务端

继续阅读“SSD8 TCP和UDP简单实现FTP 多线程”

ISS/NASA HD International Space Station 副摄像头

 

Live video from the International Space Station includes internal views when the crew is on-duty and Earth views at other times. The video is accompanied by audio of conversations between the crew and Mission Control. This video is only available when the space station is in contact with the ground. During “loss of signal” periods, viewers will see a blue screen.

Since the station orbits the Earth once every 90 minutes, it experiences a sunrise or a sunset about every 45 minutes. When the station is in darkness, external camera video may appear black, but can sometimes provide spectacular views of lightning or city lights below.

继续阅读“ISS/NASA HD International Space Station 副摄像头”

ISS/NASA HD Earth Viewing Experiment 实况转播

Black Image = ISS is on the night side of the Earth.
Image of sunset with words displayed = Switching between cameras, or communications with the ISS is not available.
Please note: The HDEV cycling of the cameras will sometimes be halted, causing the video to only show select camera feeds. This is handled by the HDEV team, and is only scheduled on a temporary basis. Nominal video will resume once the team has finished their scheduled event.

继续阅读“ISS/NASA HD Earth Viewing Experiment 实况转播”

CentOS7+Django+Apache+Mysql

前言

上图基本展示了将Django部署到发布环境需要做的工作——服务器,Django,数据库。在此,我依次选取了Apache2.4.6,Django1.8,Mysql5.5.50。其中,将服务器与Django连接起来的是mod_WSGI,这是Apache下的扩展包,它可以让Apache支持Python返回的网页内容;MySqldb则是Python下的函数包,使得Python写就的Django框架能够访问Mysql数据库。 继续阅读“CentOS7+Django+Apache+Mysql”

设置mysql数据库编码为utf8

文件、数据的编码格式一直以来都很让程序员头疼,而今天我就遇到了。在写入数据库时,报出了这样的错误。

(1267, “Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation

经过简单的检查发现了数据库的编码与程序之间的冲突,此时的数据库编码如下: 继续阅读“设置mysql数据库编码为utf8”