取一个整数a从右端开始的4~7位。

棒棒糖…… 2015-06-01 01:03:04
取一个整数a从右端开始的4~7位。
...全文
856 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
听!起风了~~~ 2015-06-03
  • 打赏
  • 举报
回复
你这是从右边取,还不能直接用String的截取,可以这样: 1.将数字转换成字符串 2.获取字符串长度 3.计算出起止索引,分别用长度减7和4 4.用String的subString根据第三步的索引截取字符 如果接下来还需要计算等,可根据情况再转换成数字
幻梦天使 2015-06-03
  • 打赏
  • 举报
回复
转为字符串然后截取字符串或者直接求模
nuoyantaizi 2015-06-03
  • 打赏
  • 举报
回复
引用 2 楼 Inhibitory 的回复:
((a & 0x78) >> 3) & 0x0F
你这个位移的操作,我在PHP中返回的结果是不对的。
鸣鸣Amadues 2015-06-02
  • 打赏
  • 举报
回复
最直观的方法就是转换成字符串,再取4-7位。 最有效率的应该是直接移位,但是要研究下怎么做。
biantiandiyun 2015-06-02
  • 打赏
  • 举报
回复
(a-a/(int)(Math.pow(10,7))*(int)Math.pow(10,7))/(int)(Math.pow(10,3)) 没记错的话,右移是除2.
javacankillyou 2015-06-01
  • 打赏
  • 举报
回复
public class test{
	public static void main(String args[]){
		int a=21234567;
		Integer a1=new Integer(a);
		String a2=a1.toString(a);
		System.out.println(a2.substring(a2.length()-7, a2.length()-3));
		
	}
}
Inhibitory 2015-06-01
  • 打赏
  • 举报
回复
更简单些:(a >>> 3) & 0x0F
Inhibitory 2015-06-01
  • 打赏
  • 举报
回复
((a & 0x78) >> 3) & 0x0F
Cactus_hxk 2015-06-01
  • 打赏
  • 举报
回复

System.out.println(subStr(1234567+""));
private static String subStr(String str){
		String temp = str;
		System.out.println(str.length());
		if(str.length() >= 7){
			temp = str.substring(4-1, 7);
		}
		return temp;
	}

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧