java里面请问下如何将long类型的数据转换成无符号的int数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里面请问下如何将long类型的数据转换成无符号的int数据相关的知识,希望对你有一定的参考价值。
long aa = Integer.MAX_VALUE+100;int unsignedBB = converter(aa);
请问下这个converter函数该如何写?
一、强制类型转换
long ll = 300000;
int ii = (int)ll;
二、调用intValue()方法
long ll = 300000;
int ii= new Long(ll).intValue();
三、先把long转换成字符串String,然后在转行成Integer
long ll = 300000;
int ii = Integer.parseInt(String.valueOf(ll)); 参考技术A 你的代码有问题,Integer.MAX_VALUE+100就超过int的上限了就变成负数了。需要转成long类型再加
测试代码如下:
package test;
import java.math.BigInteger;
public class TestConverter
public static void main(String[] args) throws Exception
String longMax = new Long(Long.MAX_VALUE).toString();
System.out.println("longMax=["+longMax+"]");
String intMax = new Long(Integer.MAX_VALUE).toString();
System.out.println("intMax=["+intMax+"]");
String longTemp = new Long(Long.parseLong(intMax)+100).toString();
System.out.println("longTemp=["+longTemp+"]");
BigInteger aa = new BigInteger(longTemp);
System.out.println("aa=["+aa+"]");
参考技术B 首先你要保证你的long数据是 数字类型的,要不然会报转化错误。
int i=3;Long l;long l2;//1.把int基本类型数据 转换为包装类Long类型对象l=new Long((long)i);//2.把int基本类型数据 转换为long基本类型数据l2=(long)i; 参考技术C int unsignedBB = new Long(aa).intValue();
return unsignedBB; 参考技术D int unsignedBB = new Long(aa).intValue();
如何修复错误:无法将类型“java.lang.String”的值转换为所需类型“java.lang.Long”;
【中文标题】如何修复错误:无法将类型“java.lang.String”的值转换为所需类型“java.lang.Long”;【英文标题】:How do I fix error: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; 【发布时间】:2019-09-05 22:03:30 【问题描述】:我正在开发一个项目经理 - 网络应用程序,该应用程序允许您以会员身份登录并加入不同类型的项目。成员可以参与多个项目。项目和成员实体通过成员资格实体连接。每次登录的成员加入项目时,都会创建一个新的成员实体。
但是,在会员单击 joinProject.html 页面上的加入按钮后,我无法创建新的会员资格。我不断收到以下错误消息:
(type=Bad Request, status=400).
Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "saveMembership"
目标是将已登录的成员添加到项目中。可以在 projectDetails.html -page 上看到新成员资格。
我正在使用 Spring Boot、Thymeleaf 和 JPA。我有一种感觉,这是一件非常简单和愚蠢的事情,但我就是找不到问题所在。 :(
如果您需要查看更多代码或信息,我很乐意提供。
感谢您的宝贵时间!
这是我尝试使用的 MembershipCreatorObject 类来将所需的数据输入我的控制器:
public class MembershipCreatorObject
private String id;
private String username;
private String jobDescription;
public MembershipCreatorObject()
super();
public MembershipCreatorObject(String id, String username, String jobDescription)
super();
this.id = id;
this.username = username;
this.jobDescription = jobDescription;
public String getId()
return id;
public void setId(String id)
this.id = id;
public String getUsername()
return username;
public void setUsername(String username)
this.username = username;
public String getJobDescription()
return jobDescription;
public void setJobDescription(String jobDescription)
this.jobDescription = jobDescription;
这是我的控制器:
@RequestMapping(value= "/joinProject/projectId")
public String joinProject(@PathVariable("projectId") Long urlId, Model model)
model.addAttribute("mObject", new MembershipCreatorObject());
model.addAttribute("project", projectRepo.findByProjectId(urlId));
return "joinProject";
@RequestMapping(value="/saveMembership", method=RequestMethod.POST)
public String saveMembership(MembershipCreatorObject mObject)
String id = mObject.getId();
Long idConverted = Long.parseLong(id);
String username = mObject.getUsername();
String description = mObject.getJobDescription();
Project projectToAdd = projectRepo.findByProjectId(idConverted);
Member memberToAdd = memberRepo.findByUsername(username);
Membership membershipToAdd = new Membership(description, memberToAdd, projectToAdd);
membershipRepo.save(membershipToAdd);
return "redirect:/projectCatalog";
这是 joinProject -html 文件。
<h1>Join Project</h1>
<h4 th:inline="text">Logged in as: [[$#httpServletRequest.remoteUser]]</h4>
<form th:object="$mObject" th:action="@saveMembership" action="#" style="padding: 20px;" method="POST">
<input th:field="*id" />
<!-- th:value="$project.projectId" -->
<input type="text" th:field="*username" />
<!-- th:value="$#httpServletRequest.remoteUser" -->
<label>What will you be working on?</label>
<input type="text" th:field="*jobDescription" style="display: block;" />
<input type="submit" value="Join" style="display: block; margin-top:10px; width:70px;">
</form>
【问题讨论】:
【参考方案1】:看起来您正在尝试将文字字符串“saveMembership”转换为 long,而不是 long 的字符串表示形式,例如:
String str = "12323445664546544564974";
Long lng = Long.parseLong(str);
这是我基于异常堆栈跟踪的假设,其中指出“NumberFormatException:对于输入字符串:“saveMembership””
【讨论】:
【参考方案2】:我不是 html 或 thymeleaf 专家,但我认为您在 html 中输入了错误的内容。
我相信当您点击submit
时,您的代码会将POST
请求发送到/joinProject/saveMembership
而不是/saveMembership
。您可以在浏览器中轻松测试(检查 POST 请求的 URL 是什么)
【讨论】:
以上是关于java里面请问下如何将long类型的数据转换成无符号的int数据的主要内容,如果未能解决你的问题,请参考以下文章