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

来源:互联网 发布:c语言中struct的用法 编辑:程序博客网 时间:2024/06/11 15:23

代码示例

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

0 0
原创粉丝点击