1、println、print、printf
println:输出时为换行输出
比如:
代码:
package csdn;
public class c1 {
public static void main(String[] args) {
System.out.println("I love JAVA");
System.out.println("I love JAVA");
System.out.println("I love JAVA");
}
}
运行结果:
print:直接同行输出,与普通输出无差异
代码:
package csdn;
public class c1 {
public static void main(String[] args) {
System.out.print("I love JAVA ");
System.out.print("I love JAVA ");
System.out.print("I love JAVA ");
}
}
运行结果:
printf:可以改变数据的输出精度
是%m.nf的格式:m表示数据的列数(包括小数点),如果数据列数小于m,且m前为正,则左补空格,反之右补空格,如果 大于m,则原数据输出。n表示保留到小数点后n位输出。
代码:
package csdn;
public class c2 {
public static void main(String[] args) {
double a=4.59989;
System.out.printf("%.3f",a);//将a保留三位小数输出
System.out.print("\n");
System.out.printf("%7.4f",a);//将a保留四位小数,如果数据的列数,包括小数点小于7,且为正,则左侧补空格
System.out.print("\n");
System.out.printf("%-7.4f",a);//将a保留四位小数,如果数据的列数,包括小数点小于7,且为负,则右侧补空格
}
}
运行结果:
2、用于接收String类型数据的next()、nextLine()
next():接受字符串,不包含带空格的字符串,即遇到空格就会结束字符串的读入
代码:
package csdn;
import java.util.Scanner;
public class c3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.next();
System.out.print(str);
}
}
运行结果:
nextLine():可以接收带空格的字符串
代码:
package csdn;
import java.util.Scanner;
public class c3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
System.out.print(str);
}
}
运行结果:
3、字节输入流InputStream中的read方法、字符输入流FileReader中的read方法(write() 方法同理)
字节输入流InputStream中的read方法:
int read():无参方法,每次读取一个字节,并返回对应的ASCII码值,如果是字符,可以通过强制转换为对应的字符
代码:
package csdn;
import java.io.FileInputStream;
import java.io.IOException;
public class c4 {
public static void main(String[] args) throws IOException {
//创建一个文本文件,里面存放字符A
FileInputStream is = new FileInputStream("E:\\test\\Touge\\src\\csdn\\text");
int m=is.read();
System.out.println(m);
System.out.println((char)m);
}
}
运行结果:
int read(byte b[]):一次性读取所有字节,并将他们存放在一个字节数组中,同时返回整型字节数
代码:
package csdn;
import java.io.FileInputStream;
import java.io.IOException;
public class c4 {
public static void main(String[] args) throws IOException {
//创建一个文本文件,里面存放字符ABCD
FileInputStream is = new FileInputStream("E:\\test\\Touge\\src\\csdn\\text");
byte[] b=new byte[56];
//返回字节数m
int m=is.read(b);
System.out.println(m);
for(int i=0;i<m;i++)
{
System.out.print(b[i]+" ");
}
}
}
运行结果:(13是回车符,10是换行符, )
int read(byte b[],int offset,int len):读取长度为len的字节,并存放在字节数组b中,offset表示数组开始的存放字节的下标
代码:
package csdn;
import java.io.FileInputStream;
import java.io.IOException;
public class c4 {
public static void main(String[] args) throws IOException {
//创建一个文本文件,里面存放字符ABCD
FileInputStream is = new FileInputStream("E:\\test\\Touge\\src\\csdn\\text");
byte[] b=new byte[56];
//返回字节数m,读取长度为2的字节,并从数组下标为1的开始存放
int m=is.read(b,1,2);
System.out.println(m);
for(int i=0;i<1+m;i++)
{
System.out.print(b[i]+" ");
}
}
}
运行结果:
字符输入流FileReader方法:
int read():读取单个字符
代码:
package csdn;
import java.io.FileReader;
import java.io.IOException;
public class c5 {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("E:\\test\\Touge\\src\\csdn\\text");
int m=fr.read();
System.out.println(m);
System.out.print((char)m);
}
}
运行结果:
int read(char b[]):一次性读取所有字符,并将他们存放在一个字符数组中,同时返回整型字符数
代码:
package csdn;
import java.io.FileReader;
import java.io.IOException;
public class c5 {
public static void main(String[] args) throws IOException {
//文本文件中存放ABCD
FileReader fr=new FileReader("E:\\test\\Touge\\src\\csdn\\text");
char[] ch=new char[56];
//返回字符个数,有6个字符,有两个是换行符和回车符
int m=fr.read(ch);
System.out.println(m);
for(int i=0;i<m;i++)
{
System.out.print(ch[i]);
}
}
}
运行结果:
int read(char b[],int offset,int len):读取长度为len的字符,并存放在字符数组b中,offset表示数组开始的存放字符的下标
代码:
import java.io.FileReader;
import java.io.IOException;
public class c4 {
public static void main(String[] args) throws IOException {
//创建一个文本文件,里面存放字符ABCD
FileReader is = new FileReader("E:\\test\\Touge\\src\\csdn\\text");
char[] b=new char[56];
//返回字符数m,读取长度为2的字符,并从数组下标为1的开始存放
int m=is.read(b,1,2);
System.out.println(m);
for(int i=0;i<1+m;i++)
{
System.out.print(b[i]+" ");
}
}
}
运行结果:
总结:
该两种方法的主要区别是:字节流读取和输出的都是以字节的方式,字符流是以字符的形式读取和输出
4、compareTo(String s)与equals()的异同
同:都是可以用来比较两者的内容是否相同
异:equals()方法用来比较两个字符串对象的内容是否相同,返回值是布尔型
比如:
代码:
package csdn;
public class c6 {
public static void main(String[] args) {
String s="I love JAVA";
String s1="I love JAVA";
String s2="I love";
System.out.println(s.equals(s1));
System.out.print(s.equals(s2));
}
}
运行结果:
compareTo(String s)方法用来直接比较两字符串大小(按照字典顺序进行比较),当返回值为0时,说明两字符串内容相同
代码:
package csdn;
public class c6 {
public static void main(String[] args) {
String s="I love JAVA";
System.out.println(s.compareTo("I love JAVA"));
System.out.print(s.compareTo("I love"));//当返回值大于0,则字符串s更大,小于0则字符串s更小
}
}
运行结果: