洛谷算法第一周总结

2022/1/15 20:03:48

本文主要是介绍洛谷算法第一周总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  • 大写转小写
    String str1 = "QQQQ";
    String str2 = str1.toLowerCase();
  • 小写转大写
    String str = "qqqqq";
    String str2 = str1.toUpperCase();

  • 字符串转Char型数组
    String str = "5.456";
    char arr[]=str.toCharArray();

  • 字符串转double
    String c = "5.45";
    double d = Double.parseDouble(c);

  • sqrt() 方法用于返回参数的算术平方根
    double a = Math.sqrt(6 * 6 + 9 * 9);

  • 相遇问题:路程和=时间×速度和
  • 路程差÷速度差=追及时间
  • 开方
     int a=(int)Math.pow(3,3);
     //int是强制转换,如果不需要可以去掉
     a=27;

  • 换行符
    	System.out.println(13 + "\n" + "R");

  • Java中long型为最大整数类型,对于超过long型的数据如何去表示呢?在Java的世界中,超过lang型的整数已经不能被称为整数了,他们被封装成BigInteger对象,在BigInteger类中,实现四则运算都是用方法来实现,并不是采用运算符.
      //计算a+b的对象和,调用add方法
             BigInteger sum = a.add(b);
             //计算a-b对象的差,调用subtract方法
             BigInteger sub = a.subtract(b);
             //计算a*b对象的积,调用multiply方法
             BigInteger mul = a.multiply(b);
             //计算a/b对象商,调用方法divied方法
             BigInteger div = a.divide(b);
             //将参数转换为制定的类型
              int a=3;
              BigInteger b=BigInteger.valueOf(a);
              b=3;
             //基本常量:
             A=BigInteger.ONE    1
             B=BigInteger.TEN    10
             C=BigInteger.ZERO   0

  • &&和&、||和|
    if(a==1&&b==2) //这是说既要满足a=1也要满足b=2
    if(a==1||b==2) //这是说或者满足a=1或者要满足b=2
    //&如果相对应位都是1,则结果为1,否则为0
    //|如果相对应位都是 0,则结果为 0,否则为 1

  • 公历年份是4的倍数的,一般都是闰年。但公历年份是整百数的,必须是400的倍数才是闰年。
    if ((nn%4==0)&&(nn%100!=0)||nn%400==0) {
    			run = true;
       }

  • System.out.printf格式化输出
     //%代表格式化
     //f代表输出浮点数,9代表输出长度,如果浮点数长度不足,则补空格,如果浮点数长度超出,则按实际长度输出,2代表保留小数点后几位小数
     System.out.printf("%9.2f",1111.3);
     //-号代表向左对齐,默认向右对齐
     System.out.printf("%-9.2f", 1111.3);
     //+号代表显示正负号
     System.out.printf("%+9.2f", 1111.3);
     //+-号代表显示正负号,且向左对齐
     System.out.printf("%+-9.2f", 1111.3);
     //d代表输出整数
     System.out.printf("%4d",15);
     //o代表输出8进制整数
     System.out.printf("%-4o",15);
     //x代表输出16进制整数
     System.out.printf("%-4x",15);
     //#x代表输出带有16进制标志的整数
     System.out.printf("%#x",15);
     //s代表输出字符串
     System.out.printf("%-8s", "我们是中心");
     //x$,整数加$表示第几个变量,如果不加,变量按默认顺序排列
     System.out.printf("%2$-5s:夺得世界杯总冠军,进球数:%1$3d,对方进球:%3$2d", 4,"法国",2);
     //输入多个值
     double sum3 = 1.0*sum1/s1;
     double sum4 = 1.0*sum2/s2;
     System.out.printf("%.1f %.1f",sum3,sum4);

  • 单精度和双精度的取值范围和精度是不同的
    单精度:float的精度是6位有效数字,
    取值范围是10的-38次方到10的38次方,float占用4字节空间
    双精度:double的精度是15位有效数字,
    取值范围是10的-308次方到10的308次方,double占用8字节空间。

  • Java大数类的RoundingMode(舍入模式)
    //java.math.RoundingMode:这是一种枚举类型,它定义了8种数据的舍入模式。
    //它与java.math.BigDecimal类中定义的8个同名静态常量的作用相同,
    //可用BigDecimal.setScale(int newScale, RoundingMode roundingMode)来设置数据的精度和舍入模式。
      int newScale = 4;//设置位数
      int RoundingMode_roundingMode = 4 ;//表示四舍五入,可以选择其他舍值方式,例如去尾
      BigDeciaml bd = new BigDecimal((double)IMB);//BigDecimal(int/double/long/String)
      bd = bd.setScale(newScale,RoundingMode_roundingMode);
      IMB = bd.floatValue();
      //floatValue是获得这个Float对象的float值。

  • Math.ceil和Math.floor
    Math.ceil(double value)
    Java Math ceil()方法将指定的double值向上舍入并返回。(向上取整)
    取整后的值应等于数学整数。也就是说,值3.4应该四舍五入为4.0,等于整数4。
    Java Math floor()方法(向下取整)
    值3.4应该四舍五入为3.0,等于整数3。

  • java换行键盘输入
    问题:Scanner 的next()或nextInt()与nextLine()连续调用时出现的问题
    nextInt()不会读取换行符;next()划分每个元素的标准是:空格、制表符、或者换行符。
    所有元素均有这三种情况分割开来,其所有返回的值均为String类型
    nextInt()输入option值,之后用户输入换行符想要结束
    可是nextInt()方法并不会读取换行符
    因此换行符被读取放到了下一个nextLine()中,nextLine()读取换行符
    解决方法:再定义一个,专门读取换行符
    String s = src.nextLine();
    (换行符--->回车键)

  • Java charAt() 方法
    //可实现通过键盘输入字符串,再通过charAt(0),获取一个字符
    //charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。

  • 字符串的查找
     String s = "xXccxxxXX";  
     // 从头开始查找是否存在指定的字符         //结果如下   
      System.out.println(s.indexOf("c"));     //2  
      //没有找到就返回-1

  • String类方法汇总
    String a;
    a = "123345abcde我最帅      ";
    // 1.int length()获取字符串长度
    int a1 = a.length();
    System.out.println(a1);
    // 2.char charAt(索引)从字符串中取出指定位置的字符 ,返回值为 char 类型
    char a2 = a.charAt(2);
    System.out.println(a2);
    // 3.char toCharArray()返回值为 char 数组类型。将字符串变成一个字符数组
    char[] a3 = a.toCharArray();
    System.out.println(a3[0]);
    // 4.字符串名.indexOf("字符")或者字符串名.indexOf("字符",索引);查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1// 。
    int a4 = a.indexOf("2");
    int a44 = a.indexOf("2", 1);// 从索引1开始查
    System.out.println(a4);
    System.out.println(a44);
    // 5.toUpperCase() toLowerCase()字符串大小写的转换
    String a5 = a.toUpperCase();// 转大写
    String a55 = a.toLowerCase();// 转小写
    // 6.String[] split("字符")根据给定的正则表达式的匹配来拆分此字符串。形成一个新的String数组。
    String[] a6 = a.split("3");
    System.out.println(a6[0] + " " + a6[1] + "" + a6[2]);
    // 7.equals语法 :字符串变量名.equals(字符串变量名); 返回值为布尔类型。
    String a7 = "123345abcde我最帅";
    if (a.equals(a7)) {
    System.out.println("两字符串相等");
    }
    // 8.trim()去掉字符串左右空格replace(char oldChar,char newChar);新字符替换旧字符,也可以达到去空格的效果一种。
    System.out.println(a.trim());
    System.out.println("去掉左右空格后:" + a.replace(" ", ""));
    // 9.String substring(int beginIndex,int endIndex) 截取字符串
    String a9 = a.substring(3);// 从索引3开始截取
    String a99 = a.substring(3, 6);// 从索引3开始截取,索引6结束,不包括索引6
    // 10.boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值
    String a10 = "HELLO WORLd";
    String a11 = "hello world";
    if (a10.equalsIgnoreCase(a11)) {
    System.out.println("两个字符串的值是一模一样");
    }
    // 11.boolean startsWith(String)测试此字符串是否以指定的前缀开始。返回一个布尔值
    // boolean endsWith(String) 测试此字符串是否以指定的后缀结束。返回一个布尔值
    if (a.startsWith("1")) {
    System.out.println("以1为前缀");
    }
    if (a.endsWith("帅")) {
    System.out.println("以帅为后缀");
    }
    // 12.上面提到了replace方法,接下继续补充一下 String replaceAll(String,String) 将某个内容全部替换成指定内容,
    // String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容
    String a12 = ",,,,,,我啊我,,,,, ";
    System.out.println("改变后:" + a12.replaceAll(",", "a"));
    // 结果 a,,,,,我啊我,,,,,
    String a1212 = ",,,,,,我啊我,帅吗,帅吗,,,,, ";
    System.out.println("改变后:" + a1212.replaceFirst("帅吗", "很帅哦"));
    // 结果 ,,,,,,我啊我,很帅哦,帅吗,,,,,



这篇关于洛谷算法第一周总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程