1:問題java
import java.util.Scanner;//導入工具包中的Scanner類正則表達式
public class Hello{oracle
public static void main(String[] args){eclipse
Scanner sc = new Scanner(System.in);工具
//聲明一個名稱,讓它等於null編碼
String name = null;//沒有值,指向內存的一個特別的空間spa
while(name==null || name.equals("")){//若是name==null,或是"".net
System.out.println("請輸入你的姓名");orm
name = sc.nextLine();對象
}
System.out.println("name is "+name);//在Java代碼中,串聯字符串,就是+
//不要管年齡的數據類型,只要接收字符串
String age = null;//沒有值,指向內存的一個特別的空間
while(age==null || age.equals("")){//若是name==null,或是""
System.out.println("請輸入你的Age");
age = sc.nextLine();//sc.nextInt();不要使用方法
}
System.out.println("age is "+age);//在Java代碼中,串聯字符串,就是+
}
}
2:數據類型
如下,若是聲明在方法裏面的變量,則爲局部變量,必需要設置值之後才能夠使用:
類型 |
取值範圍 |
示例 |
byte |
-128 ~ 127 |
byte b = 4; |
char |
0 ~ 0xffff |
char c = ‘A’; char c = ‘你’; char c = ‘\u0000’ |
short |
--- |
short s =1; short s = 90; |
int |
-2E32 ~ 2E32-1 |
Int a = 90; Int b = 89; 在Java代碼裏,直接聲明的數字,沒有小數位的,都默認是int類型。 |
long |
-2E63 ~ 2E63-1 |
Long x = 56L; Long y = 534L; |
float |
單精度 |
float x = 45.3F; |
double |
雙精度 |
Double d1 = 45; Double d2 = 45.6; Double d3 = 45.3D; |
boolean |
True | false |
Boolean boo = true; Boolean boo = false; |
Java中有幾種直接數:
String name = 「Jack 「; 其中Jack就是直接數。這個直接數的默認的類型是 String
45 - int
45L long
45F float
45D double
45.4 double
命令選項 |
||
Javac命令 |
-d 將編譯後的源代碼,放到它的包下,自動的建立目錄結構 |
Javac –d . Stud.java Javac –d .\bin Stud.java放到 |
Java命令 |
Java –classpath Classpath是指定*.class文件在哪兒 |
java -classpath c:\ com.oracle.Stud |
3.目前開發Java比較流行的工具
下載Eclipse
classic
javaee版本- 這個版本- 企業版本。
配置編碼類型-將所編碼設置utf-8編碼:
編碼 |
|
GBK/GB2312 – 國標擴展/ |
中國定義的編碼類型 一箇中文 兩個字節 你 – 2 byte |
UTF-8 |
國際編碼識別全部文字 佔的字節比較長 一箇中文點三個字節 你 – 3 byte |
Iso-8859-1 |
不認識中文。 |
package cn.oracle;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
快捷key:
ATL+/ - 萬能幫助。
package cn.oracle;
public class Hello {
public static void main(String[] args) {
System.out.println("helldlddldl");
}
}
4.數據類型的運算
運算符號 |
示例 |
|
兩元運算符號 + - * /
% 取模 取餘數
+ 不但能夠進行數值類型的運算,還能夠進行字符串的串聯:
>> 位運算 右位移 << 左位移 |
/ 若是 int類型相除,只會獲取int部分。 int a = 10; int b = 4; int c = a/b;//都是int System.err.println(c);//2
+ 兩數相加 結果爲 較大一方的數據類型或是int(最小是int) int x1 = 10; int x2 =7; int x3 = x1%x2; //能夠經過 %2的方式來判斷是不是偶數 System.out.println(x3);//1
//全部類型均可以進行+操做 int a = 1; int b = 45; String str = "Hello"; String ss = a+b+str; System.err.println(ss);//46Hello ss = str+a+b; System.err.println(ss);//Hello145
>> 位運算 右位移 數變小 |
|
一元操做符號: ++ some++ : some= som+1 - - some-- : some=som-1;
~ 按位取反 0000110 1111001 |
前++ - 先+1 ,再用這個數 後++ 先用這個數,再+1 int a = 1; int b = a++;//先將a的值設置給b,再作a++ System.err.println(b+" a is:"+a);//1,2 int c = ++a; System.err.println("c is :"+c+", a is:"+a);//3,3 |
|
邏輯運算 > < <= >= - 這些只用於比較數值類型 intbytechar,shot,float double = = 能夠比較數值類型,也能夠比較對象類型 比較是兩個對象的內存地址是否同樣。 |
public void test4() { String name = "Jack";//直接數 String name2 = new String("Jack");//使用new關鍵字分配新的內存地址 System.err.println(name==name2);//false - 》 比較內存地址是否同樣 System.err.println(name.equals(name2));//比較裏面的內容是否同樣 - true } |
5:要求用戶輸入它的姓名,+年齡
可是要求用戶的輸入的年齡必須是合法的年齡
年齡不是 負數。 存在在必定的範圍 :1~100
如何驗證用戶輸入的字符串是 數字?正則表達式。
如何將一個字符串轉成int類型 Integer.parseInt(…) : int - 對於字符串到 int的轉換不能是強轉 (int)String;
要求輸入的姓名,且姓名必需要達到6個字符。
Name.length <6
public void test5() {
Scanner sc = new Scanner(System.in);
while (true) {
System.err.println("plz enter age:");
String age = sc.nextLine();
boolean bo = age.matches("\\d{1,3}");// 正則表達式
if (bo == false) {// 不是數字
System.err.println("plz enter some int...");
continue;
}
// 轉成int
int age2 = Integer.parseInt(age);
if (age2 < 1 || age2 > 100) {
System.err.println("plz enter some int in 1..100");
continue;
}
System.err.println("your age is ok:" + age);
break;
}
}