面向算法程序设计的java语法精粹

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/NCUscienceZ/article/details/83961546

一、基本数据类型
(1) 强制类型转换通过截断小数部分将浮点值转换为整型 。

double x * 9.997 ;
int nx = ( int ) x ;

这样 , 变量 nx 的值为 9。
如果想对浮点数进行舍人运算 , 以便得到最接近的整数 ( 在很多情况下 , 这种操作更有用 ), 那就需要使用 Math类中的若干方法:

static double ceil(double a):
天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)。

static double floor(double a):
地板函数,返回小于等于a的最大整数(但是以浮点数形式存储)。

static double rint(double a):
四舍五入函数,返回与a的值最相近的整数(但是以浮点数形式存储)。    

static long round(double a):
四舍五入函数,返回与a的值最相近的长整型数。

static int round(float a):
四舍五入函数,返回与a的值最相近的整型数。

(2)字符判断:

java.lang.Character里有相应的判断方法
char c = 'a';
isDigit(c):判断字符是否数字
isLetter(c):判断字符是否字母 
isLetterOrDigit(c):判断字符是否字母或数字
isLowerCase(c):判断字符是否小写字母
isUpperCase(c):判断字符是否大写字母
isWhitespace(c):判断字符是否空格

二、字符串自身重要操作合集(java . lang . string)
(1)子串提取:

String substring ( int beginlndex )
String substring ( int beginlndex , int endlndex )
返回一个新字符串。 这个字符串包含原始字符串中从beginlndex 到串尾或 endlndex - 1的所有代码单元。

(2)判等:一定不要使用 = 运算符检测两个字符串是否相等 ! 这个运算符只能够确定两个字串是否放置在同一个位置上 。 当然 , 如果字符串放置在同一个位置上 , 它们必然相等。 但是 ,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。
可以使用 equals 方法检测两个字符串是否相等 。 对于表达式 :

s . equals ( t )

如果字符串 s 与字符串 t 相等 , 则返回 true ; 否则 , 返回 false。 需要注意 , s 与 t可以是字符串变量 , 也可以是字符串字面量 。 例如 , 下列表达式是合法的 :

" Hello " . equals ( greeting )

要想检测两个字符串是否相等, 而不区分大小写 , 可以使用 equalsIgnoreCase()方法。

" Hello " . equalsIgnoreCase ( " hello " )

(3)码点(值),与代码单元(char字符)

char charAt ( int index )
返回给定位置的代码单元。 除非对底层的代码单元感兴趣 ,否则不需要调用这个方法。
int codePointAt ( int Index ) 5.0
返回从给定位置开始的码点。

(4)字符串比较

int compareTo ( String other )
按照字典顺序, 如果字符串位于 other 之前 , 返回一个负数 ; 如果字符串位于other 之后, 返回一个正数 ; 如果两个字符串相等 , 返回0。

(5)字符串判等:

boolean equals ( 0 bject other )
如果字符串与 other 相等 , 返回 true。
boolean equalsIgnoreCase ( String other )
如果字符串与 other 相等 ( 忽略大小写 ), 返回 true 。

(6)子串开头结尾判断:

boolean startsWith ( String prefix )
boolean endsWith ( String suffix )
如果字符串以 suffix 开头或结尾 , 则返回 true。

(7)子串查找:

int indexOf ( String str )
int indexOf ( String str , int fromlndex )
int indexOf ( int cp )
int indexOf ( int cp , int fromlndex )
返回与字符串 str 或代码点 cp 匹配的第一个子串的开始位置。 这个位置从索引0 或fromlndex 开始计算 。 如果在原始串中不存在 str , 返回 - 1。
int lastIndexOf ( String str )
Int lastIndexOf ( Stri ng str , int fromlndex )
int lastindexOf ( int cp )
int lastindexOf ( int cp , int fromlndex )
返回与字符串 str 或代码点 cp 匹配的最后一个子串的开始位置 。 这个位置从原始串尾端或 fromlndex 开始计算。

(8)、字符串大小写转换:

String toLowerCase ( )
String toUpperCase ( )
返回一个新字符串 。 这个字符串将原始字符串中的大写字母改为小写 , 或者将原始字符串中的所有小写字母改成了大写字母。

三、字符串拼接操作集合(java.lang.StringBuilder)
(1)结尾追加字符串或字符

StringBuilder append ( String str )
追加一个字符串并返回 this。
StringBuilder append ( char c )
追加一个代码单元并返回 this。

(2)修改单个字符

void setCharAt ( int i , char c )
将第 i 个代码单元设置为 c。

(3)中间插入字符串或字符

StringBuilder insert ( int offset , String str )
在 offset 位置插入一个字符串并返回 this。
StringBuilder insert ( int offset , Char c )
在 offset 位置插入一个代码单元并返回 this。

(4)删除子串

StringBuilder delete ( int startindex , int endlndex )
删除偏移量从 startindex 到 - endlndex - 1 的代码单元并返回 this。

(5)构造器与String转换

String toString ( )
返回一个与构建器或缓冲器内容相同的字符串

四、标准输入输出:

API java . util . Scanner 5.0

•Scanner ( InputStream in )
用给定的输人流创建一个 Scanner 对象。
•String nextLine ( )
读取输入的下一行内容。
•String next ( )
读取输入的下一个单词 ( 以空格作为分隔符 )。
•int nextlnt ( )
•double nextDouble ( )
读取并转换下一个表示整数或浮点数的字符序列 。
•boolean hasNext ( )
检测输人中是否还有其他单词。
•boolean hasNextInt ( )
•boolean hasNextDouble ( )
检测是否还有表示整数或浮点数的下一个字符序列 。

重点强调nextLine()就是c++中的gets(),遇到回车就停止,并且会带走缓冲区的回车。当语句之前有nextInt()等以空格和回车为终止的标准输入时,这些标准输入并不会带走缓冲区等回车,会使下一行的输入无法被nextLine()读取。

五、数组操作(java . util . Arrays)
(1)阿里强制性代码风格:

 int[] arrayDemo;

(2)数组拷贝:

static type copyOf ( type [] a , int length ) 6
static type copyOfRange ( type [] a , int start , int end ) 6

返回与 a 类型相同的一个数组 , 其长度为 length 或者 end - start , 数组元素为 a 的值。
参数 :
a 类型为 int 、 long 、 short 、 char 、 byte、 boolean 、 float或 double 的数组。
start 起始下标 ( 包含这个值 )。
end 终止下标 ( 不包含这个值 )。 这个值可能大于a . length。 在这种情况下 , 结果为 0 或 false。
length 拷贝的数据元素长度 c 如果 length 值大于 a . length , 结果为 0 或 false ;否则 ,数组中只有前面 length 个数据元素的拷贝值。
(3)数组排序:

static void sort ( type [ 2 ] )

采用优化的快速排序算法对数组进行排序 。
参数 : a 类型为 int 、 long 、 short 、 char 、 byte 、 boolean、 float或 double 的数组。
(4)二分查找:
static int binarySearch ( type [ ] a , type v )
•static int binarySearch ( type [ ] a , int start , int end , type v ) 6
采用二分搜索算法查找值 v。 如果查找成功 ,则返回相应的下标值 ; 否则 , 返回一个负数值 r。 - r - 1是为保持 a 有序 v 应插入的位置。
参数 :
a 类型为 int 、 long 、 short 、 char 、 byte 、 boolean 、 float 或 double 的有序数组。
start 起始下标 ( 包含这个值 )。
end 终止下标 ( 不包含这个值 )。
(5)数组快速赋相同值:

static void fill ( type [] a , type v )

将数组的所有数据元素值设置为 V。
参数 :
a 类型为 int 、 long 、 short 、 char 、 byte 、 boolean 、 float 或 double 的数组。
v 与 a 数据元素类型相同的一个值。

猜你喜欢

转载自blog.csdn.net/NCUscienceZ/article/details/83961546