Java官方笔记5数字和字符串

news/2025/1/12 9:39:05/

Numbers

Number的子类:

另外还有BigDecimal和BigInteger,用于高精度计算,AtomicInteger和AtomicLong用于多线程应用。

我们有时候需要用包装类而非基本数据类型,理由如下:

  1. 方法入参类型为Object,只能传入对象

  2. 使用包装类提供的常量,比如MIN_VALUE和MAX_VALUE

  3. 使用包装类的方法来做类型转换

format

import java.util.Calendar;
import java.util.Locale;public class TestFormat {public static void main(String[] args) {long n = 461012;System.out.format("%d%n", n);      //  -->  "461012"System.out.format("%08d%n", n);    //  -->  "00461012"System.out.format("%+8d%n", n);    //  -->  " +461012"System.out.format("%,8d%n", n);    // -->  " 461,012"System.out.format("%+,8d%n%n", n); //  -->  "+461,012"double pi = Math.PI;System.out.format("%f%n", pi);       // -->  "3.141593"System.out.format("%.3f%n", pi);     // -->  "3.142"System.out.format("%10.3f%n", pi);   // -->  "     3.142"System.out.format("%-10.3f%n", pi);  // -->  "3.142"System.out.format(Locale.FRANCE,"%-10.4f%n%n", pi); // -->  "3,1416"Calendar c = Calendar.getInstance();System.out.format("%tB %te, %tY%n", c, c, c); // -->  "May 29, 2006"System.out.format("%tl:%tM %tp%n", c, c, c);  // -->  "2:34 am"System.out.format("%tD%n", c);    // -->  "05/29/06"}
}

DecimalFormat

import java.text.*;public class DecimalFormatDemo {static public void customFormat(String pattern, double value ) {DecimalFormat myFormatter = new DecimalFormat(pattern);String output = myFormatter.format(value);System.out.println(value + "  " + pattern + "  " + output);}static public void main(String[] args) {customFormat("###,###.###", 123456.789);customFormat("###.##", 123456.789);customFormat("000000.000", 123.78);customFormat("$###,###.###", 12345.67);  }
}

Math

public class BasicMathDemo {public static void main(String[] args) {double a = -191.635;double b = 43.74;int c = 16, d = 45;System.out.printf("The absolute value " + "of %.3f is %.3f%n", a, Math.abs(a));System.out.printf("The ceiling of " + "%.2f is %.0f%n", b, Math.ceil(b));System.out.printf("The floor of " + "%.2f is %.0f%n", b, Math.floor(b));System.out.printf("The rint of %.2f " + "is %.0f%n", b, Math.rint(b));System.out.printf("The max of %d and " + "%d is %d%n",c, d, Math.max(c, d));System.out.printf("The min of of %d " + "and %d is %d%n",c, d, Math.min(c, d));}
}

Charaters

基本类型char

char ch = 'a'; 
// Unicode for uppercase Greek omega character
char uniChar = '\u03A9';
// an array of chars
char[] charArray = { 'a', 'b', 'c', 'd', 'e' };

Character

Character ch = new Character('a');

Strings

定义:

String greeting = "Hello world!";
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
String helloString = new String(helloArray);
System.out.println(helloString);

回文字符串实现:

public class StringDemo {public static void main(String[] args) {String palindrome = "Dot saw I was Tod";int len = palindrome.length();char[] tempCharArray = new char[len];char[] charArray = new char[len];// put original string in an // array of charsfor (int i = 0; i < len; i++) {tempCharArray[i] = palindrome.charAt(i);} // reverse array of charsfor (int j = 0; j < len; j++) {charArray[j] =tempCharArray[len - 1 - j];}String reversePalindrome =new String(charArray);System.out.println(reversePalindrome);}
}

String转换为基本数据类型,parseXXX()比valueOf更好用:

float a = (Float.valueOf(args[0])).floatValue(); 
float b = (Float.valueOf(args[1])).floatValue();
float a = Float.parseFloat(args[0]);
float b = Float.parseFloat(args[1]);

基本数据类型转换为String:

int i;
// Concatenate "i" with an empty string; conversion is handled for you.
String s1 = "" + i;
// The valueOf class method.
String s2 = String.valueOf(i);
int i;
double d;
String s3 = Integer.toString(i); 
String s4 = Double.toString(d);

根据字符查找对应索引:

String anotherPalindrome = "Niagara. O roar again!"; 
char aChar = anotherPalindrome.charAt(9);

子串:

String anotherPalindrome = "Niagara. O roar again!"; 
String roar = anotherPalindrome.substring(11, 15);

String Builders

String不可变,StringBuilder可变。StringBuilder除了length(),还有个capacity(),返回分配的字符数量,大于等于length,并且会自动扩充。

// creates empty builder, capacity 16
StringBuilder sb = new StringBuilder();
// adds 9 character string at beginning
sb.append("Greetings");

StringBuffer用的少,只在需要保证线程安全时使用。

自动装箱和拆箱

装箱,基本数据类型→包装类:

List<Integer> ints = new ArrayList<>();
for (int i = 1; i < 50; i += 2)ints.add(i);

拆箱,包装类→基本数据类型:

public static int sumEven(List<Integer> ints) {int sum = 0;for (Integer i: ints) {if (i % 2 == 0) {sum+=i;}}return sum;
}

参考资料:

Numbers and Strings https://dev.java/learn/numbers-strings/


http://www.ppmy.cn/news/183419.html

相关文章

大数据:数据表操作,分区表,分桶表,修改表,array,map, struct

大数据&#xff1a;数据表操作&#xff0c;分区表 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle&a…

有哪款戴尔笔记本适合学计算机专业,学生用笔记本哪款好? 2018适合大学生用的笔记本...

谁的青春不迷茫&#xff0c;为学业、为爱情、为友情。又是一年毕业季&#xff0c;又是一年开学季&#xff0c;相信拿到录取通知书的学生们开始为选择什么电脑而迷茫了。电子产品价格昂贵&#xff0c;如果需要买电脑也确实需要下些功夫。运行速度、质感、散热、重量、售价、所学…

学计算机的需要配哪种笔记本,微软哪一款笔记本电脑办公用性价比高?

微软在发布第一代Surface电脑时应该想不到它会变成今天的样子。2012年在纽约时代广场的快闪店我买到了和Windows 8一起发布的第一代Surface&#xff0c;那是搭载ARM芯片的平板电脑&#xff0c;虽然工业设计惊艳&#xff0c;但实际市场反响并不算好。直到2015年Surface Pro 4的上…

打游戏最快的计算机,打游戏最好的笔记本电脑是哪一款-散热迅速运行流畅笔记本电脑大全...

数码市场上游戏笔记本电脑品牌数不胜数&#xff0c;大家在玩打游戏的笔记本电脑时也会货币三家呢&#xff1f;针对市面上层出不穷的游戏笔记本电脑纠结哪款更好用呢&#xff1f;散热迅速运行流畅是非常必要的考虑因素&#xff0c;小编为大家带来打游戏最好的笔记本电脑推荐&…

适合php编程的笔记本电脑,做web前端,推荐一款笔记本电脑。

4000-5000的就行。 这个问题已被关闭&#xff0c;原因&#xff1a;非技术提问的讨论型问题 回复内容&#xff1a; 4000-5000的就行。 华硕笔记本足够优秀的了 你买的华硕什么型号的 2.7GHz 处理器 128 GB 存储容量 2.7GHz 双核 Intel Core i5 处理器 Turbo Boost 高达 3.1GHz 8…

学计算机苹果电脑哪款好,学生超值电脑汇总!适合学生的5款顶级笔记本电脑,您喜欢哪款?...

原标题&#xff1a;学生超值电脑汇总&#xff01;适合学生的5款顶级笔记本电脑&#xff0c;您喜欢哪款&#xff1f; 与几年前不同&#xff0c;笔记本电脑现在是大学或大学学生的必备工具。但是&#xff0c;年龄较小的孩子也需要通过网络访问进行学习&#xff0c;因此&#xff0…

学计算机买戴尔笔记本哪款,戴尔笔记本大学生用,买哪款比较好?

外观不太难看&#xff0c;就选Sony或者Toshiba啦&#xff0c;而且Sony 5月才出的一款NW18高性价比的本本我就觉得不错&#xff0c;不过屏幕大了点15寸&#xff0c;但那个屏幕效果绝对远超其他的机型&#xff0c;我在店里看的时候比CS系列显示图像好多了。 [索尼(SONY)官方网站]…

Stable Diffusion 超详细讲解

Stable Diffusion 超详细讲解 这篇文章是 《Stable Diffusion原理详解》的后续&#xff0c;在《Stable Diffusion原理详解》中我更多的是以全局视角讲解了 Stable Diffusion 的原理和工作流程&#xff0c;并未深入步骤细节。本文将在《Stable Diffusion原理详解》和《Diffusio…