&字符的使用方法

JAVA中的&字符的使用方法

&是JAVA中的与运算符。

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

&&还具有短路功能(前面提到的),即如果第一个表达式为false,则不再计算第二个表达式,

举个例子:

if(str != null && !str.equals(“”))
//当str为null时,后面的表达式不会执行,所以不会出现NullPointerException
//如果将&&改为&,则会抛出NullPointerException异常。

& 也可以进行按位与操作,按二进制位进行"与"运算。

举个例子:

最近学习hadoop的时候学习了自定义Partition的方法。在mapreduce中 分区过程中通过类HashPartitioner<K,V> implements Partitioner<K,V> 来实现相同的key 的value 会分配到同一个reduceTask中,其中有一段很有意思的代码,如下:

public int getPartition(K2 key, V2 value, int numReduceTasks) { 
//重点看return后面的代码
return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks; 
//该代码主要是为了根据key的hashcode返回一个分区号。
}

一开始我没有想到 & 字符在这里的作用,实际上&字符在这里是用于做位运算的。

Integer.MIN_VALUE=2147483647 转换成二进制值是:

0111 1111 1111 1111 1111 1111 1111 1111

key.hashCode() & 2147483647 可以保证结果是非负数,原因在于当key.hashCode()为负数时,第一位一定是1,此时1 & 0结果为0,这样就会使符号位一定为0了。

这里同时也要注意,HashPartitioner类返回的int值必须是一个整数,不然就无法对指定的键值对进行分区,也就无法在下一步进行Map操作了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java中有多种方法可以填充字符串,下面介绍几种常用的方法: 1. 使用String.format()方法 可以使用String.format()方法来填充字符串,该方法使用格式字符串和一组参数来生成格式化的字符串。格式字符串中可以使用特殊的占位符来指定要填充的值的格式和位置。 示例代码: ```java String input = "hello"; String output = String.format("%10s", input); System.out.println(output); // 输出 " hello" ``` 在上面的示例中,%10s是格式字符串,表示要填充一个字符串,占用10个字符的宽度。如果输入字符串不足10个字符,则在左侧填充空格。 2. 使用StringUtils.leftPad()方法 Apache Commons Lang库提供了一个StringUtils类,其中包含了很多常用的字符串处理方法,包括填充字符串的方法。 示例代码: ```java import org.apache.commons.lang3.StringUtils; String input = "hello"; String output = StringUtils.leftPad(input, 10); System.out.println(output); // 输出 " hello" ``` 在上面的示例中,StringUtils.leftPad()方法会在字符串左侧填充空格,使其达到指定的长度。 3. 使用StringBuilder.append()方法 可以使用StringBuilder.append()方法来构建字符串,并在其前面添加空格或其他字符。 示例代码: ```java int width = 10; String input = "hello"; StringBuilder sb = new StringBuilder(); for (int i = 0; i < width - input.length(); i++) { sb.append(" "); } sb.append(input); String output = sb.toString(); System.out.println(output); // 输出 " hello" ``` 在上面的示例中,使用StringBuilder来构建字符串,并在其前面添加空格,使其达到指定的长度。 总的来说,使用String.format()方法和StringUtils.leftPad()方法可以更简单方便地填充字符串。如果需要高效地构建大量字符串,可以使用StringBuilder类来进行操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值