java布尔类型可以转换字符_JAVA 强制类型转换和字符串类型

强制类型转换

JAVA 强制类型转换根据基本数据类型的大小考虑是否会丢失精度,例如:

int-> long 不会丢失精度。

long->int 可能会丢失精度

char->int, short->int, byte->int 不会丢失精度。

int->double 不会丢失精度。

int->float 可能会丢失精度。

强制类型转换格式和c/c++一样

double x = 9.99

int nx = (int) Math.round(x)

字符串

Java的字符串是Unicode字符序列。Java本身没有内置字符串,但是在标准库中定义:java.lang.string;

字串

String greeting = "Hello";

String s = greeting.substring(0,3); // Hel

字符串拼接

字符串拼接有2种主要方法,第一使用算术运算符,第二种使用字符串构建器。

使用算术运算符

// Help!

String greeting = "Hello";

String s= greeting.substring(0,3)+"p!"

理论: 不可变的字符串对象

String类对象称为不可变字符串, 字符串"Hello" 永远包含H E L L O 代码单元序列,而不能改变其中任何一个字符: 例如在c/c++中 greeting[3] = 'o' 这种语句在java中是不被允许的。修改字符串可以让他引用另一个字符串,就像上面做的一样。

注意: 和C/C++不一样 ,字符串不是字符类型的数组。

判断字符串是否相等

s.equals(x); // true or false

与c++的对比

在java中不能重载算术运算符,意味着不能使用 str3 = str1 + str2,或者 if(str1 == str2) 这种表达式

StringBuilder java.lang.StringBuilder

函数名

作用

StringBuilder()

构造器函数

int length()

返回构造器活缓冲器中的代码单元数量

StringBuilder append(String s)

追加字符串并返回this指针

StringBuilder append(char c)

追加字符并返回this指针

StringBuilder appendCodePoint(int cp)

追加一个代码点,并返回其转换未一个或两个代码单元并返回this

void setCharAt(int i, char c)

将第i个代码单元设置位c

StringBuilder insert(int offset, String str)

在 offset 位置插入一个字符串并返回this

StringBuilder insert(int offset, char c)

在offset位置插入一个字符并返回this

StringBuilder delete(int startIndex, int endIndex)

删除startIndex 到 endIndex区间的字符串

String toString()

返回一个与构造器或缓存器内容相同的字符串

码点及码点单元

代码单元

Java的字符串由 char值序列组成。char数据类型是一个UTF-16编码表示Unicode码点的代码单元。 大多数Unicode使用一个代码单元表示就够了,但是辅助字符需要一对代码单元表示。

使用 length() 返回代码单元数量(不是码点数量)

使用 charAt(int i)得到第i个代码单元

码点

想要得到第i个码点,使用:

int index = greeting.offsetByCodePoints(0,i);

int cp = greeting.codePointAt(index);

判断一个码点是否为辅助字符使用:

int cp = sentence.codePointAt(i);

Character.isSupplementaryCodePoint(cp)) i+=2;

else i++;

输入输出 Scanner java.util.Scanner

输入读取

通过控制台进行输入,需要构造一个与标准输入流(system.in)关联的Scanner:

Scanner in = new Scanner(System.in);

System.out.print("what is your name");

String name = in.nextLine(); // 包含空格

String name2 = in.next(); // 不包含空格

String age = in.nextInt(); // 读取整数

String dage = in.nextDouble();// 读取浮点数

Scanner 函数

函数名

描述

Scanner(InputStream in)

用给定的输入流创建一个Scanner对象

String nextLine()

读取输入的下一行的内容

String next()

读取输入的下一个单词(空格作为分隔符)

int nextInt()

读取并转换下一个表示整数或浮点数的字符序列

double nextDouble()

读取并转换下一个表示整数或浮点数的字符序列

boolean hasNext()

读取输入流中是否还有其他单词

boolean hasNextInt()

检测是否还有整数或夫电视的下一个字符序列

boolean hasNextDouble()

检测是否还有整数或夫电视的下一个字符序列

java.io.Console 对象

static char[] readPassword(String prompt, Object ... args);

static String readLine(String prompt, Object...args);

格式化输出数字

转换符

类型

d

十进制整数

x

十六进制整数

o

八进制整数

f

定点浮点数

e

指数浮点数

g

通用浮点数

a

十六进制浮点数

s

字符串

c

字符

b

布尔

h

散码列

tx/Tx

时间日期(T强制大写,已经过时)

%

百分号

n

与平台有关的换行符

格式化标志

标志

目的

举例

+

打印整数和负数的符号

-300 or + 300

空格

在整数之前添加空格

( 33.33)

0

在数字前面补0

033

-

左对齐

(33.33 )

(

负数包含在括号内

(3333)

添加分组分隔符

3,33

文件的输入和输出

如果要对文件进行操作,需要使用File对象构造一个Scanner对象,例如:

文件读取对象构造

Scanner in = new Scanner(Paths.get("C:\\mydirectory\\myfile.txt","utf-8")

文件写入对象构造

Scanner in= new Scanner(Paths.get("C:\\myfile.txt"));

java.util.Scanner

Scanner(File f);

Scanner(String data);

java.io.PrintWriter

PrintWriter(String fileName);

java.nio.file.Paths

static Path get(String pathname);

你可能感兴趣的:(java布尔类型可以转换字符)