如何将 Stringbuilder 变量变为 long?

Posted

技术标签:

【中文标题】如何将 Stringbuilder 变量变为 long?【英文标题】:How can i turn Stringbuilder variable to a long? 【发布时间】:2013-08-07 13:35:50 【问题描述】:
// Get the text file
        File file = new File(Environment.getExternalStorageDirectory()
                + "/Config/GPSListenerminTime.cfg");

        // Read text from file
        StringBuilder GPSListenerminTime = new StringBuilder();
        try 
            BufferedReader br = new BufferedReader(new FileReader(file));
            String line;

            while ((line = br.readLine()) != null) 
                GPSListenerminTime.append(line);
                GPSListenerminTime.append('\n');

            
         catch (IOException e) 
            // TODO You'll need to add proper error handling here
           

我想使用此代码从文件中读取一个数字,它运行良好,但我如何在 requestLocationUpdates 中将该数字用作长值? 我尝试以这种方式使用它,但它不起作用:

        lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, Long.valueOf(String.valueOf(GPSListenerminTime)), 0, this);

我的文件只包含这个数字:10000 启动服务时出现此错误:

  08-07 15:32:45.599: E/androidRuntime(19878): java.lang.RuntimeException:
Unable to create service com.example.gpslog.DataLogService: java.lang.NumberFormatException: 10000

【问题讨论】:

【参考方案1】:

这是一个应该可以工作的代码 sn-p:

long requestLong = Long.parseLong(GPSListenerminTime.toString());

基本上,您是将StringBuilder 转换为常规String,然后让Long 类对其进行解析。

【讨论】:

如果你阅读他们使用 Long.valueOf 的代码,这已经封装了 Long.parseLong。 我尝试了它和 String.valueOf 但我得到了相同的 numberformatexception。【参考方案2】:

您当前使用的Long.valueOf 这封装了Long.parseLong,因此您可以忽略建议使用它的答案。

当您收到数字格式异常时,您的字符串可能包含前导或尾随空格,请尝试使用;

Long.valueOf(String.valueOf(GPSListenerminTime).trim())

【讨论】:

【参考方案3】:

NumberFormatException 是解析“1000/n”字符串的结果。只需使用 trim() 方法删除所有空字符:

Long.valueOf(yourStringBuilder.toString().trim());

【讨论】:

不,他在我的答案之后编辑了他的答案;)无论如何我要给他+1【参考方案4】:

试试这样:

StringBuilder oBuilder = your_string_builder;
long myLong = Long.parseLong(oBuilder.toString());

【讨论】:

以上是关于如何将 Stringbuilder 变量变为 long?的主要内容,如果未能解决你的问题,请参考以下文章

基础练习 十六进制转八进制

JAVA常用知识点(mian shi ti)积累

如何自动将构建日期变为我的代码可见的常量?

编写测试用例时弱变量变为空?

在.NET中如何将一个string对象转化为一个stringbuilder对象

String,StringBuffer,StringBuilder区别