【问题标题】:Saving last 4 characters of a string in android在android中保存字符串的最后4个字符
【发布时间】:2011-07-12 08:06:24
【问题描述】:

今天早上很简单,但给我带来了问题,似乎找不到任何代码。我创建了一个数字的十六进制表示,现在希望保存十六进制字符串的最后 4 个字符,然后转换回整数。

转换代码如下:

int in2 = new Integer(mycard.resourceid.toString());
String hex = Integer.toHexString(in2);

如果有人能将我推向正确的方向,我将不胜感激。

int in3 = new Integer(hex.length());
int in4 = new Integer (in3 - 4);
String mystring = hex.subString(in4, in3);

【问题讨论】:

  • 关于代码格式的快速说明:缩进 4 个字符(或使用编辑器中的 {} 按钮)足以格式化您的代码。如果你将它缩进 4 的倍数,它会在页面的一半处结束,并最终触发一个水平滚动条。
  • 抱歉,它保留了代码本身的缩进,现在修复它。不要以为你可以看到它是如何使用字符串的?

标签: java android string


【解决方案1】:

如果您只是想要轻推,请查找 String 类的 substring 方法。

编辑:响应 OP 跟进的一些示例代码:

public class Test {
    public static void main(String[] args) throws Exception {
        Integer in2 = 897387483;
        String hex = Integer.toHexString(in2);
        System.out.println(hex);
        System.out.println(hex.substring(hex.length()-4, hex.length()));
    }
}

【讨论】:

  • 有一个小问题,说我正在尝试使用字符串。更新原版,看不到我是如何使用字符串的。
  • @chris 我在答案中添加了一段示例代码。它按原样运行良好。看看你能不能把它和你所拥有的进行比较。我认为您将substring 大写错误。
  • 太棒了 - 谢谢 - 又是我自己的新手错误!
【解决方案2】:
String s = mycard.resourcdeid.toString();
int in2 = Integer.parseInt(s.substring(s.length() - 4, s.length());

【讨论】:

  • 嗨,对不起,我是一个 android nooby,想了解为什么我的错误在那里。我希望保存的十六进制字符是 9f8f 等,如果保存为 int 不会导致 f 等字符出错?
  • 所以...不要将其解析为 int。我不明白问题是什么。
【解决方案3】:

(new Integer(intValueYouLikeToConvert & 0xffff)).toHexString() 可以解决问题

所有前面的例子都没有考虑到,结果字符串可能短于 4 个字符

【讨论】:

    【解决方案4】:

    假设你的十六进制字符串是:String hex = oxFFFFFF 取子字符串 hex = hex.subString(2);

    【讨论】:

      【解决方案5】:

      要删除最后 4 个字符,请尝试一次

      yourString.substring(0, yourString.length() - 4) ;
      

      只保留最后 4 个字符

      yourString.substring(yourString.length() - 4, yourString.length()) ;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-20
        • 2021-05-29
        • 1970-01-01
        • 1970-01-01
        • 2014-06-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多