首页 > 编程知识 正文

输入输出的功能(stringbuilder append原理)

时间:2023-05-05 07:28:21 阅读:66000 作者:2560

在构建字符串(StringBuilder的应用)的情况下,需要从:键和来自文件的单词等短字符串构建字符串,字符串连接方式下实现该目的效率很低。 每次连接字符串时都会构建新的String对象,这是浪费时间的空间。 使用StringBuilder类可以避免此问题。 如果需要使用短字符串创建字符串,请执行以下操作: 首先,空字符串生成器: stringbuilder builder=new stringbuilder ();以及每次需要添加部分内容时调用append方法builder.append(ch )。 //appendasinglekkdxn.append (str; 如果在需要构建//append a String字符串时调用toString方法,则生成器中包含字符序列. stringcompletestring=builder.tostring (的字符串对象将.以下API包括: StringBuilder () :是StringBuilder类的重要方法,它是空字符串生成器. int length ) ) :返回给生成器或缓冲区的字符串数. StringBuilderappend ) stringbuilder 添加tringbuilderappend(charc ) :个字符并返回this.stringbuilderappendcodepoint (intcp ) 3360以添加代码点,然后转换一个或两个代码单元返回char c ) :将第I个字符设置为c.stringbuilderinsert ) intoffset。 stringstr(:将字符串插入到此字符串中。 stringbuilder delete (int startindex,intendindex(:从此序列的子字符串中删除字符。 String toString ) ) :返回生成器或缓冲区内容相同的字符串。 输入输出读取输入输出输出到“标准输出流”,即控制窗口。 您可以使用System.out.println,但要通过它,必须首先生成Scanner对象,并将其与“标准输入流”System.in相关联。 scannerin=newscanner(system.in ); 使用Scanner类的各种方法实现输入操作。 例如,在:nextLine方法中, system.out.print (' what is your name?' 输入行); String name=in.nextLine (; 其中,使用nextLine方法是因为输入行可能包含空格。 要读取单个单词并将空格用作分隔符,请使用:String firstname=in.next (; 要读取整数,请使用nextInt方法system.out.print('howoldareyou?' 调用); int age=in.nextInt (; 同样,要读取浮点数,请调用nextDouble方法。 询问案例:的名称和年龄,并打印信息public class scan _ demo { publicstaticvoidmain [ string [ ] args ] { scanners Cain }//getfirstinpurs ); String name=scanner.nextLine (; //getsecondinputsystem.out.println (' howoldareyou?' ); int age=scanner.nextInt (; //displayouputonconsolesystem.out.println (' hello,' name ',Next year,you'llbe ' ) age1); }由于输入是可见的,因此Scanner类不适用于从控制台读取密码。 因此,使用Console类实现,输入不可见性. public class console _ demo { publicstaticvoidmain (string [ ] args ) coonnnect if(cnsl!=null ) { string alpha=cnsl.readline (' name : ); system.out.println(nameis: )阿尔法); char [ ] pwd=cnsl.read password (' password : ); system.out.println (密码is : ) pwd; }}高级IDE无法调用系统控制台窗口,因此使用cmd命令行执行。

与其使用控制台对象处理输入,不如使用Scanner

方便,每次只能读取一行输入,而没有能够读取一个单词或一个数值的方法.

Scanner类常见的方法总结 Scanner(InputStream in):用给定的输入流创建一个Scanner对象.String nextLine():读取输入的下一行内容.int nextInt():读取一个数字.String next():读取输入的下一个单词(以空格为分隔符).double nextDouble():读取并转换下一个表示整数或浮点数的字符序列.boolean hashNext():检测输入中是否还有其他的单词.boolean hashNextDouble():检测是否还有表示整数或浮点数的下一个字符序列. 格式化输出 可以使用System.out.print(x)将数值x输出到控制台.这条命令将以x对应的数据类型所允许的最大非0数字将x输出.例如 double x = 10000.0/3.0;System.out.print(x); //3333.333333333333

如果希望显示美元,美分等符号,则有可能出现问题.

因此引入了格式化输出,System.out.printf().例如:调用System.out.printf(%8.2f),使用8个字符的宽度和小数点后的精度打印x.在printf中,可以有多个参数,例如:System.out.printf("Hello %s,Next year,you'll be %d", name , age);每一个%字符开始的都是格式说明符,格式说明符尾部的转换符将指示格式化的数据类型. d:十进制整数x:十六进制整数o:八进制整数f:定点浮点数e:指数浮点数g:通用浮点数a:十六进制浮点数s:字符串c:字符b:搞怪的发带:散列码tx或Tx:日期时间(已过期)%:百分号n:行分隔符 用于printf的标志 +:打印整数和负数的符号空格:在数的前面添加空格0:数字前面补0-:左对齐(:将负数括在括号内.#:包含小数点(对于f格式)#:添加前缀0x或0(对于x或0格式)$:给定被格式化的参数索引. 可以使用静态的String.format方法创建一个格式化的字符串,而不打印:String message = String.format("Hello %s,Next year,you'll be %d",name ,age);. 文件的输入与输出 要想对一个文件进行读取,就需要用File对象构造一个Scanner对象,例如: Scanner in = new Scanner(Paths.get("myfile.txt"),"UTF-8");,如果文件名中包含反斜杠符号,就要在每个反斜杠之前额外再加一个反斜杠.

注意:这里有一个异常需要抛出,这时在main方法中用throw标记

public static void main(String[] args) throw IOException{ Scanner in = new Scanner(Path.get("myfile.txt"),"UTF-8");} 常用方法 Scanner(File f):构造一个给定文件读取数据的ScannerScanner(String data):构造一个从给定字符串中读取的ScannerPrintWriter(String fileName):构造一个将数据写入文件的PrintWriter.static Path get(String.pathname):根据给定路径创建一个Path.(Paths类中的方法)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。