赞
踩
1.System.out.print() 不换行直接输出
2. System.out.println()输出后会自动换行
3. System.out.printf()按格式输出
- //%表示进行格式化输出,%之后的内容为格式的定义
- 格式控制符 说明
- --------------------------------------------------
- %d 输出int型数据
- %c 输出char型数据
- %f 输出浮点型数据,小数部分最多保留6位
- %s 输出字符串数据
- %md 输出的int型数据占m列
- %m.nf 输出的浮点型数据占m列,小数点保留n位
示例:
- public class out{
- public static void main(String[] args) {
- System.out.print("hello");
- System.out.println("hello world");
- int m=16;
- System.out.printf("这是 %d", m);
- System.out.println();
- double n=3.25446;
- System.out.printf("%d %.2f", m,n);
- }
- }
输出:
键盘输入代码的四个步骤:
1、导包:import java.util.Scanner;
2、创建Scanner类型的对象:Scanner scanner= new Scanner( System.in) ;
3、调用Scanner类的相关方法(next() / nextXxx()) ,来获取指定类型的变量
4、释放资源:调用Scanner对象的close()方法, scanner.close();
- import java.util.Scanner;
-
- public class in {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- System.out.println("Please enter your name:");
- String s=in.next();
- System.out.printf("Your name is %s",s);
- in.close();
- }
-
- }
输出:
先判断是否还有输入,再输入
- import java.util.Scanner;
-
- public class in {
- public static void main(String[] args) {
- //2、定义一个Scanner对象
- Scanner scanner = new Scanner(System.in);
- System.out.println("请输入:" );//输出提示信息
- //3、调用Scanner类的相关方法next方式接收字符串
- if(scanner.hasNext()){// 判断是否还有输入
- String str1 = scanner.next();
- System.out.println("输入的数据为:" + str1);
- }
- //4、释放资源:调用Scanner对象的close()方法, `scanner.close();`
- scanner.close();
- }
- }
输出:
next()只会读取第一个字符串,空格后的字符不读取。
- import java.util.Scanner;
-
- public class in {
- public static void main(String[] args) {
- //2、定义一个Scanner对象
- Scanner scanner = new Scanner(System.in);
- System.out.println("请输入:" );//输出提示信息
- //3、调用Scanner类的相关方法next方式接收字符串
- if(scanner.hasNext()){// 判断是否还有输入
- String str1 = scanner.next();
- System.out.println("输入的数据为:" + str1);
- }
- //4、释放资源:调用Scanner对象的close()方法, `scanner.close();`
- scanner.close();
- }
- }
输出:
读取一整行的输入。
- import java.util.Scanner;
-
- public class in {
- public static void main(String[] args) {
- //2、定义一个Scanner对象
- Scanner scanner = new Scanner(System.in);
- System.out.println("请输入:" );//输出提示信息
- //3、调用Scanner类的相关方法next方式接收字符串
- if(scanner.hasNextLine()){// 判断是否还有输入
- String str1 = scanner.nextLine();
- System.out.println("输入的数据为:" + str1);
- }
- //4、释放资源:调用Scanner对象的close()方法, `scanner.close();`
- scanner.close();
- }
- }
输出:
原文链接: Java016——Java输入输出语句_java输出-CSDN博客
- String numberStr = "123";
- int number = Integer.parseInt(numberStr);
- int number = 123;
- String numberStr = Integer.toString(number);
- // 或者
- String numberStr = String.valueOf(number);
- String str = "hello";
- char[] charArray = str.toCharArray();
- char[] charArray = {'h', 'e', 'l', 'l', 'o'};
- String str = new String(charArray);
- // 或者
- String str = String.valueOf(charArray);
- public class BaseConversion {
- public static void main(String[] args) {
- // Decimal to Binary
- int decimal1 = 10;
- String binary = Integer.toBinaryString(decimal1);
- System.out.println("Decimal: " + decimal1 + " to Binary: " + binary);
-
- // Binary to Decimal
- String binaryStr = "1010";
- int decimalFromBinary = Integer.parseInt(binaryStr, 2);
- System.out.println("Binary: " + binaryStr + " to Decimal: " + decimalFromBinary);
-
- // Hex to Decimal
- String hexStr = "A";
- int decimalFromHex = Integer.parseInt(hexStr, 16);
- System.out.println("Hex: " + hexStr + " to Decimal: " + decimalFromHex);
-
- // Decimal to Hex
- int decimal2 = 10;
- String hex = Integer.toHexString(decimal2);
- System.out.println("Decimal: " + decimal2 + " to Hex: " + hex);
- }
- }
输出:
- Decimal: 10 to Binary: 1010
- Binary: 1010 to Decimal: 10
- Hex: A to Decimal: 10
- Decimal: 10 to Hex: a
如果数字很大,可以用BigInteger类实现
- import java.math.BigInteger;
-
- public class BaseConversion {
- public static void main(String[] args) {
- // Decimal to Binary
- BigInteger decimal1 = new BigInteger("123456789012345678901234567890");
- String binary = decimal1.toString(2);
- System.out.println("Decimal: " + decimal1 + " to Binary: " + binary);
-
- // Binary to Decimal
- String binaryStr = "110110101010110110111110111011101110111011101110111";
- BigInteger decimalFromBinary = new BigInteger(binaryStr, 2);
- System.out.println("Binary: " + binaryStr + " to Decimal: " + decimalFromBinary);
-
- // Hex to Decimal
- String hexStr = "1A2B3C4D5E6F";
- BigInteger decimalFromHex = new BigInteger(hexStr, 16);
- System.out.println("Hex: " + hexStr + " to Decimal: " + decimalFromHex);
-
- // Decimal to Hex
- BigInteger decimal2 = new BigInteger("123456789012345678901234567890");
- String hex = decimal2.toString(16);
- System.out.println("Decimal: " + decimal2 + " to Hex: " + hex);
- }
- }
在switch语法中,switch()圆括号中写入判断的数字,当case语句的值等于圆括号内的值时,将执行相应代码块的代码。
每段case语句后需要跟一个break语句结束,否则将继续进行下一个case语句内。且default语句不能直接触发,当switch内的值与case值均不匹配时,将会执行default内的代码语句。
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String grade =scanner.next();
- switch(grade){
- case "A":
- System.out.print("优秀");
- break;
- case "B":
- System.out.print("良好");
- break;
- case "C":
- System.out.print("及格");
- break;
- case "D":
- System.out.print("不及格");
- break;
- default:System.out.print("未知等级");
- }
-
- }
- }
最大公倍数一定在a,b较大数和它们的乘积之间,在该区间从小到大遍历找到能整除a,b的数即为答案。
- public class Main {
- public static void main(String[] args) {
- //标准输入
- Scanner console = new Scanner(System.in);
- int m = console.nextInt();
- int n = console.nextInt();
- //计算最小公倍数
- int result = getCM(m, n);
- //输出结果
- System.out.println(result);
- }
-
- //计算最小公倍数
- public static int getCM(int m, int n){
- //计算m、n中较大者
- int max=Math.max(m,n);
- //从max到m*n之间找最小公倍数
- for(int i=max;i<=m*n;i++){
- //如果既能被m整除又能被n整除,说明是最小公倍数,直接返回
- if(i%m==0&&i%n==0){
- return i;
- }
- }
- return -1;
- }
-
- }
可以利用辗转相除,a,b的最大公约数等于较小值和较大值对小值取余得到的余数的最大公约数。
- public static int get(int m, int n){
- int a=m>n?m:n;
- int b=m<=n?m:n;
- int s=m*n;
- int c=a%b;
- while(c!=0){
- a=b;
- b=c;
- c=a%b;
- }
- return b;
-
- }
Java提供了System类中的arraycopy()方法来实现数组复制。这个方法能够以更高效的方式复制数组,因为它是通过底层的本地代码实现的。下面是使用arraycopy()方法的示例代码:
- int[] sourceArray = {1, 2, 3, 4, 5};
- int[] targetArray = new int[sourceArray.length];
-
- System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);
- int[] sourceArray = {1, 2, 3, 4, 5};
- int[] targetArray = Arrays.copyOf(sourceArray, sourceArray.length);
- copyOfRange方法有以下几个重载的方法,使用方法基本一样,只是参数数组类型不一样
- original:第一个参数为要拷贝的数组对象
- from:第二个参数为拷贝的开始位置(包含)
- to:第三个参数为拷贝的结束位置(不包含)
- import java.util.Scanner;
-
- public class test_class{
- public static void main(String[] args) throws Exception {
- Scanner scanner = new Scanner(System.in);
- while (scanner.hasNext()) {
- String className = scanner.next();
- //Class.forName(className) 通过类的完整名称动态加载类,返回一个 Class 对象
- System.out.println(Class.forName(className));
- //newInstance() 方法创建了 Class 对象所表示的类的一个新实例
- print(Class.forName(className).newInstance());
- }
- }
- public static void print(Object obj){
- System.out.println(obj.getClass().getName()); //调用getName函数直接输出
- }
-
- }
- class First {
- public String toString() {
- return "this is First";
- }
- }
-
- class Second {
- public String toString() {
- return "this is Second";
- }
- }
-
- class Third {
- public String toString() {
- return "this is Third";
- }
- }
-
- public class Main {
-
- public static void main(String[] args) {
- // Sub是需要你定义的子类
- Base base = new Sub();
-
- Scanner scanner = new Scanner(System.in);
- while (scanner.hasNextInt()) {
- int x = scanner.nextInt();
- int y = scanner.nextInt();
- base.setX(x);
- base.setY(y);
- System.out.println(base.calculate());
- }
- }
-
- }
-
- abstract class Base {
-
- private int x;
- private int y;
-
- public int getX() {
- return x;
- }
-
- public void setX(int x) {
- this.x = x;
- }
-
- public int getY() {
- return y;
- }
-
- public void setY(int y) {
- this.y = y;
- }
-
- public int calculate() {
- if (avg() == 0) {
- return 0;
- } else {
- return sum() / avg();
- }
- }
-
- /**
- * 返回x和y的和
- */
- public abstract int sum();
-
- /**
- * 返回x和y的平均值
- */
- public abstract int avg();
-
- }
-
- class Sub extends Base {
- public int sum(){
- return super.getX()+super.getY();
- }
- public int avg(){
- return sum() / 2;
- }
-
- }
- import java.util.Scanner;
-
- public class Main {
-
- public static void main(String[] args) {
- Comparator comparator = new ComparatorImpl();
-
- Scanner scanner = new Scanner(System.in);
- while (scanner.hasNextInt()) {
- int x = scanner.nextInt();
- int y = scanner.nextInt();
- System.out.println(comparator.max(x, y));
- }
- }
-
- }
-
- interface Comparator {
- /**
- * 返回两个整数中的最大值
- */
- int max(int x, int y);
- }
-
- //write your code here......
- class ComparatorImpl implements Comparator{
- public int max(int x,int y){
- return x>y?x:y;
- }
- }
在Java中,String类提供了许多常用的方法来进行字符串操作,以下是一些常用的方法:
StringBuffer类是Java中用于字符串处理的常用类,它提供了多种方法来操作字符串。以下是StringBuffer类的一些常用方法:
例题:对一个字符串,从右往左,每三个字符插入一个逗号。
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String str = scanner.next();
- StringBuilder newstr = new StringBuilder(str); //用原字符串创建可改变的字符串
- for(int i = str.length() - 3; i >= 0; i -= 3){ //从末尾开始,三个三个遍历
- newstr.insert(i, ','); //插入逗号
- }
- System.out.println(newstr.toString()); //转变成String类输出
- }
void Character(char value) | 构造一个新分配的 Character 对象,用以表示指定的 char 值 |
char charValue() | 返回此 Character 对象的值,此对象表示基本 char 值 |
int compareTo(Character anotherCharacter) | 根据数字比较两个 Character 对象 |
boolean equals(Character anotherCharacter) | 将此对象与指定对象比较,当且仅当参数不是 null,而 是一个与此对象 包含相同 char 值的 Character 对象时, 结果才是 true |
boolean isDigit(char ch) | 确定指定字符是否为数字,如果通过 Character. getType(ch) 提供的字 符的常规类别类型为 DECIMAL_DIGIT_NUMBER,则字符为数字 |
boolean isLetter(int codePoint) | 确定指定字符(Unicode 代码点)是否为字母 |
boolean isLetterOrDigit(int codePoint) | 确定指定字符(Unicode 代码点)是否为字母或数字 |
boolean isLowerCase(char ch) | 确定指定字符是否为小写字母 |
boolean isUpperCase(char ch) | 确定指定字符是否为大写字母 |
char toLowerCase(char ch) | 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写 |
char toUpperCase(char ch) | 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写 |
- import java.util.*;
-
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int num = scanner.nextInt();
-
- String n=Integer.toBinaryString(num);
- System.out.print(n);
-
-
- }
- }
- public static String decimalToBinary(int decimal) {
- StringBuilder binary = new StringBuilder();
- while(decimal > 0) {
- binary.insert(0, decimal % 2);
- decimal = decimal / 2;
- }
- return binary.toString();
- }
- public class Main {
-
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- while (scanner.hasNextInt()) {
- int seed = scanner.nextInt();
- Random random = new Random(seed);
- //生成[1,6]之间的随机数,nextInt(n)生成随机数的区间为[0,n)
- int n=random.nextInt(6)+1;
- System.out.print(n);
-
-
- }
- }
-
- }
Math.random()返回一个0到1之间的double值
Java Math类提供了许多用于执行数学运算的静态方法。下面是Java Math类的一些常用方法:
获取Calendar实例
- Calendar cal = Calendar.getInstance(); // 获取当前日期和时间
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); // 获取 GMT 时区的当前日期和时间
获取和设置时间日期
- cal.get(Calendar.YEAR); // 获取年份
- cal.get(Calendar.MONTH); // 获取月份 (注意:Calendar 的月份从 0 开始计数)
- cal.get(Calendar.DAY_OF_MONTH); // 获取日期
- cal.get(Calendar.HOUR_OF_DAY); // 获取 24 小时制的小时数
- cal.get(Calendar.MINUTE); // 获取分钟数
- cal.get(Calendar.SECOND); // 获取秒数
-
- // 设置日期和时间
- cal.set(Calendar.YEAR, 2020);
- cal.set(Calendar.MONTH, Calendar.JANUARY);
- cal.set(Calendar.DAY_OF_MONTH, 1);
- cal.set(Calendar.HOUR_OF_DAY, 0);
- cal.set(Calendar.MINUTE, 0);
- cal.set(Calendar.SECOND, 0);
示例:获取某一年某一月的天数
- import java.util.Calendar;
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner console = new Scanner(System.in);
- int year = console.nextInt();
-
- //获取Calendar的实例
- Calendar calendar=Calendar.getInstance();
- //循环遍历所有的月份
- for(int month=1;month<=12;month++){
- //设置年、月、日
- calendar.set(year,month,0);
- //输出对应年份各个月的天数
- //getActualMaximum(Calendar.DATE) 方法返回了当前 Calendar 对象表示的月份的最大日期数。
- System.out.println(year+"年"+month+"月:"+calendar.getActualMaximum(Calendar.DATE)+"天");
- }
-
- }
- }
- public class Main {
- public static void main(String[] args) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Scanner in = new Scanner(System.in);
- String str1 = in.nextLine();
- String[] arr = str1.split(" "); //依据空格分开
- if (arr.length != 6) //不足6项,不合理的输入
- System.out.println("您输入的数据不合理");
- else {
- //将字符串组合成日期格式
- String temp = arr[0] + "-" + arr[1] + "-" + arr[2] + " " + arr[3] + ":" + arr[4] + ":" + arr[5];
- Date date = sdf.parse(temp); //将字符串转换成日期
- System.out.println("北京时间为:" + sdf.format(
- date.getTime())); //格式化后输出
- System.out.println("纽约时间为:" + sdf.format(date.getTime() -
- (long) 12 * 60 * 60 * 1000)); //减去12h
- }
- }
- }
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int score = scanner.nextInt();
- try{
- if(score >= 0 && score <= 100) //正常分数输出
- System.out.println(score);
- else
- throw new ScoreException("分数不合法"); //抛出异常
- }
- catch(ScoreException str){
- System.out.println(str.getMessage()); //输出异常
- }
- }
- }
-
- class ScoreException extends Exception{ //继承自异常类的分数异常处理类
- public ScoreException(String message){ //构造函数
- super(message); //输入异常信息
- }
- }
- Iterator it=set.iterator();
- while(it.hasNext()){
- System.out.print(it.next()+" ");
- }
s.toArray(new String[0]) 的作用是将s集合中的元素转换为一个 String 数组。
类似的有
- List<String> list = new ArrayList<>();
- // 添加元素到列表中
- list.add("apple");
- list.add("banana");
- list.add("cherry");
- // 将列表转换为数组
- String[] array = list.toArray(new String[0]);
ArrayDeque当栈和队列用时,对应方法与标准的一样
栈(ArrayDeque是一个双向队列,队列的两端都可以进行增删弹出等操作)
队列(ArrayDeque实现Deque接口,而Deque接口是继承了Queue接口)
向map集合中添加Key为key,Value为value的元素,当添加成功时返回null,否则返回value。
向map集合中添加指定集合的所有元素
把map集合中所有的键值删除
检出map集合中有没有包含Key为key的元素,如果有则返回true,否则返回false。
检出map集合中有没有包含Value为value的元素,如果有则返回true,否则返回false。
返回map到一个Set集合中,以map集合中的Key=Value的形式返回到set中。
- Set<Map.Entry<Integer, String>> entrys = map.entrySet();
- for (Map.Entry<Integer, String> entry : entrys) {
- System.out.println(entry.getKey() + ":" + entry.getValue());
- }
判断两个map集合的元素是否相同
根据map集合中元素的Key来获取相应元素的Value
检出map集合中是否有元素,如果没有则返回true,如果有元素则返回false
返回map集合中所有Key
删除Key为key值的元素
返回map集合中元素个数
返回map集合中所有的Value到一个Collection集合
在类方法里重写compareTo方法 可以实现类数组的sort 必须要求类实现Comparable接口(所有继承collections的都实现了这个接口)
在 sort 方法中会自动调用 compareTo 方法 . compareTo 的参数是 Object , 其实传入的就是
然后比较当前对象和参数对象的大小关系:
- class Customer implements Comparable<Customer>{
- private String name;
- private int consumption;
-
- public Customer(String name, int consumption) {
- this.name = name;
- this.consumption = consumption;
- }
-
- @Override
- public String toString() {
- return "Customer{" +
- "name='" + name + '\'' +
- ", consumption=" + consumption +
- '}';
- }
- # 按照消费从大到小排列
- public int compareTo(Customer c1){
- return c1.consumption-consumption;
- }
-
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。