您的位置:首页 > 编程语言 > Java开发

Java_变量、常量、数值转换、字符串、输入输出

2016-01-11 19:51 323 查看

代码示例

public class Main {

public static void main(String[] args) {
int a='a';
System.out.println(a); //97

char b='a';
short c=123;
System.out.println(b+c);  //220

StringBuilder stringBuilder=new StringBuilder();
stringBuilder.append("hi");
stringBuilder.append(',');
stringBuilder.append("l'am katy");
System.out.println(stringBuilder.toString()); // hi,l'am katy

stringBuilder.delete(0,3);
String sb=stringBuilder.toString();
System.out.println(sb); // l'am katy

try {
Scanner in = new Scanner(Paths.get("C:\\Users\\Gaga\\Desktop\\myFile.txt"));
//构造一个从给定文件读取数据的Scanner
if(in.hasNextLine()){
System.out.println(in.nextLine());  //输出文件中的内容
}
} catch (IOException e) {
e.printStackTrace();
}
}
}


变量

变量名必须以字母开头,字母或数字组成的序列,字母包括’A’-‘Z’,’a’-‘z’,’_’,’′,除保留字!是一个合法的Java字符,但不要在自己的代码中使用这个字符,它只用在Java编译器或其他工具生成的名字中

常量

利用关键字final指示常量,关键字final表示这个变量只能被赋值一次,,习惯上常量使用全大写

使用关键字static final 设置一个类常量

运算符

&和|运算符用于布尔值,得到的结果 也是布尔值。&&和||为”短路”方式计算,而&和|在得到计算结果之前,一定要计算两个操作数的值。

数值类型之间的转换

转换规则:从存储范围小的类型到存储范围大的类型。

具体规则为:byte→short(char)→int→long→float→double

强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。

转换规则:从存储范围大的类型到存储范围小的类型。

具体规则为:double→float→long→int→short(char)→byte

当两个数值进行二元操作时,先要将两个操作数转换为同一个类型,然后进行计算。

规则如下:

如果连个操作数有一个是double,另一个操作数转为double。

否则,如果其中一个为float,另一个转为float。

否则,如果其中一个为long,另一个为long。

否则,两个操作数都将转换为int类型。

字符串

每个用双引号括起来的字符串都是String类的一个实例。

子串:String类的substring方法可以从一个较大的字符串提取一个子串。

s.substring(a,b):复制的位置从a到b,包括a但不包括b。

不可变字符串:不能修改Java字符串中的字符。

使用equals方法检测两个字符串是否相等。

使用equalsIgnoreCase检测两个字符串是否相等,不区分大小写。

检查一个字符串是否为null,使用str==null?

一定不能使用==判断两个字符串相等,可以想象各种字符串存放在公共的存储池中,只有字符串常量是共享的,而+或substring等操作产生的结果并不是共享的。

构件字符串

当需要用许多小段的字符串构件一个字符串,如果采用字符串连接的方式,效率低,因为每次连接字符串,都会构件一个新的String对象,耗时且浪费空间。

使用StringBuild解决:

StringBuilder sBuilder=new StringBuilder(); //创建一个空的字符串构造器
sBuilder.append(ch||str); //添加内容
String completeString=sBuilder.toString(); //构建字符串,可以得到一个String对象,返回一个与构建器或缓冲器内容相同的字符串


StringBuilder的前身是StringBuffer,其效率稍有些低,但允许采用多线程的方式执行添加或删除字符的操作,如果所有字符串在一个单线程中编辑(通常如此),则应该使用StringBuilder代替它。

输入输出

读取"标准输入流" System.in,首先需要构造Scanner对象,并与标准输入流System.in 关联。


Scanner in=new Scanner(System.in);
System.out.println("what's your name?");
String name=in.nextLine(); //读取控制台输入的一行内容


Scanner类定义在java.util包中,import java.util.*;

文件输入与输出:

要想对文件进行读取,首先要用File对象构造一个Scanner对象

Scanner in=new Scanner(Paths.get("myFile.txt")); //如果文件名中包含反斜杠符号,就要在每个反斜杠前加一个额外的反斜杠

!可以构造一个带有字符串参数的Scanner,但这个Scanner将字符串解释为数据,而不是文件名。

PrintWriter out=new PrintWriter("myFile.txt"); // 要想写入文件,构造一个PrintWriter对象,在构造器中只要提供文件名


控制流程:

多重选择 switch语句:

switch(choice){
case 1:
.....
break;
case 2:
.....
break;
case 3:
.....
break;
default:
....
break;
}


switch语句将从与选项值相匹配的case标签处开始执行直到遇到break语句,或者执行到switch语句结束处为止。如果没有匹配到,执行default字句。

如果在case分支语句末尾没有break语句,会直接执行下一个case语句,常常引发错误,最好不要使用switch 语句。

case标签可以是

类型为char、byte、short、int或其他(包装器类Character、Byte、Short和Integer)的常量表达式。

枚举常量

Size sz=...;
switch(sz){
case SMALL: // no need to use Size.SMALL
.....
break;
.....
}


Java SE7,字符串字面量


中断控制流程语句:

带标签break,用于跳出多重嵌套的循环语句。

注意:标签必须放在最外层循环之前,并且必须紧跟一个冒号。

continue语句,将控制转移到最内层循环的首部。

大数值

java.math包中的BigInteger和BigDecimal.

int compareTo(BigDecimal other);//比较两个大数值的大小,如果这个大实数与另一个大实数相等,返回0;小于other,返回负数;否则返回正数。

使用静态valueOf方法可以将普通的数值转换为大数值。

                                       Mischief managed
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java