标签: parseint

J2ME的Integer.parseInt()坏了吗?

在为J2ME编写游戏时,我们遇到了一个使用java.lang.Integer.parseInt()的问题

我们有几个常量值定义为十六进制值,例如:

CHARACTER_RED = 0xFFAAA005;
Run Code Online (Sandbox Code Playgroud)

在游戏过程中,值被序列化并通过网络连接接收,作为十六进制值的字符串表示形式.为了将其解析回int,我们不成功地尝试了以下内容:

// Response contains the value "ffAAA005" for "characterId"
string hexValue = response.get("characterId");
// The following throws a NumberFormatException
int value = Integer.parseInt(hexValue, 16);
Run Code Online (Sandbox Code Playgroud)

然后我运行了一些测试并尝试了这个:

string hexValue = Integer.toHexString(0xFFAAA005);
// The following throws a NumberFormatException
int value = Integer.parseInt(hexValue, 16);
Run Code Online (Sandbox Code Playgroud)

这是实际代码的例外:

java.lang.NumberFormatException: ffaaa005
    at java.lang.Integer.parseInt(Integer.java:462)
    at net.triadgames.acertijo.GameMIDlet.startMIDlet(GameMIDlet.java:109)
Run Code Online (Sandbox Code Playgroud)

我必须承认,这让我感到困惑.查看parseInt代码,当被解析的数字"越过""负/正边界"时,似乎抛出了NumberFormatException(也许有人可以用右边的行话来编辑?).

这是Integer.parseInt函数的预期行为吗?最后我不得不编写自己的十六进制字符串解析函数,我对提供的实现非常不满意.

换句话说,我期望让Integer.parseInt()在整数误导的十六进制字符串表示上工作吗?

编辑:在我最初的帖子中,我写了0xFFFAAA005而不是0xFFAAA005.我已经纠正了这个错误.

java java-me parseint

3
推荐指数
1
解决办法
4970
查看次数

如何在javascript中将整数数组转换为十六进制字符串,反之亦然

我在javascript中有32位整数数组.如何将其转换为十六进制字符串,并在需要时再次从该十六进制字符串构建相同的32位整数数组?

hexString = yourNumber.toString(16); 可用于将数字转换为十六进制,但是当数字数组转换为十六进制字符串(它将是连续的或由某个字符分隔)时,如何从该字符串中返回数字数组?

javascript arrays string tostring parseint

3
推荐指数
1
解决办法
9198
查看次数

parseInt返回undefined

周二晚上Facebook的代码变化影响了parseIntFBJS的运作方式.我以前使用它将十进制数转换为直整数,现在它总是返回undefined.

例如:

return parseInt(decimalnum);
Run Code Online (Sandbox Code Playgroud)

不再有效.有人想出我们现在应该如何围绕整数?谢谢.

facebook undefined parseint fbjs

3
推荐指数
1
解决办法
1774
查看次数

如何在字符串中查找int值

我有一个字符串,例如"ksl13<br>m4n",我想删除所有非数字字符,以获得int 134.

Integer.parseInt(s) 显然不会起作用,但不知道怎么回事.

java string int parsing parseint

3
推荐指数
1
解决办法
4023
查看次数

为什么arr.map(parseInt)在JavaScript中不起作用?

我觉得我正在做一些无聊的事情.任何人都可以帮助我理解为什么以下不起作用

["1.1", "2.2", "3.3"].map(parseInt);
//=> [1, NaN, NaN]
Run Code Online (Sandbox Code Playgroud)

这虽然有效???

["1.1", "2.2", "3.3"].map(function(num) {
  return parseInt(num);
});
//=> [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

这似乎也有效

["1.1", "2.2", "3.3"].map(Number);
//=> [1.1, 2.2, 3.3]
Run Code Online (Sandbox Code Playgroud)

javascript map parseint

3
推荐指数
1
解决办法
319
查看次数

使用JTextField - 无法将值转换为int

我想从中获取所选值JComboBox,在数据库中搜索并使用值中的值更新数据库中的数量JTextField.这是代码:

    Object selected = jComboBox1.getSelectedItem();
    String album = (String)selected;
    int qty=Integer.parseInt(jTextField7.getText());
    String query2="update  productlist set QtyAvail=? " +
                "where Album=?";
        try
        {
            PreparedStatement ps2=con.prepareStatement(query2);
            ps2.setInt(1, qty);
            ps2.setString(2,album);
            int res1=ps2.executeUpdate();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException:
  For input string: " 1"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at AddProductPanel.jButton2ActionPerformed(AddProductPanel.java:341)
    at AddProductPanel.access$4(AddProductPanel.java:335)
    at AddProductPanel$5.actionPerformed(AddProductPanel.java:133)
Run Code Online (Sandbox Code Playgroud)

我在文本字段中输入值"1".

java swing jtextfield parseint

3
推荐指数
1
解决办法
417
查看次数

parseInt和javascript中的负零:奇怪的行为?

为什么:

parseInt(-0, 10) // 0
parseInt('-0', 10) // -0
Run Code Online (Sandbox Code Playgroud)

是否有一个明智的理由,parseInt不会为两者做-0或这只是一个奇怪的JavaScript?

javascript zero parseint

3
推荐指数
1
解决办法
458
查看次数

java.lang.NumberFormatException:对于输入字符串:"23"

我给了23(看起来像一个正确的字符串)作为输入,但stil得到NumberFormatException.请指出我哪里出错了.

PS我试图在codechef上解决"厨师和字符串问题"

相关代码:

Scanner cin=new Scanner(System.in);
      cin.useDelimiter("\n");
      String data=cin.next();
      System.out.println(data);

      /*
       * @param Q no. of chef's requests
       */
      String tempStr=cin.next();
      System.out.println(tempStr);;
      int Q = Integer.parseInt(tempStr);
Run Code Online (Sandbox Code Playgroud)

输出:

sdfgsdg
sdfgsdg

23
23

Exception in thread "main" java.lang.NumberFormatException: For input string: "23
"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at Chef.RegexTestHarness.main(RegexTestHarness.java:24)
Run Code Online (Sandbox Code Playgroud)

完整计划:

package Chef;
//
//TODO codechef constraints
import java.util.Scanner;
import java.lang.*;
import java.io.*;

//TODO RETURN TYPE
class RegexTestHarness
{
  public static void main(String args[])
  { 

      Scanner cin=new Scanner(System.in);
      cin.useDelimiter("\n");
      String data=cin.next(); …
Run Code Online (Sandbox Code Playgroud)

java string parseint numberformatexception

3
推荐指数
1
解决办法
3万
查看次数

关于Javascript中的parseInt()的澄清

parseInt(0.000004); //0 
parseInt(0.0000004);  //4 
Run Code Online (Sandbox Code Playgroud)

为什么第一个parseInt()返回0,但如果我增加十进制后的零数,则给出4?

javascript parseint

3
推荐指数
1
解决办法
65
查看次数

具有1000位数的字符串,使用substring方法查找没有数组的最大5位数字

我知道我的代码可以变得更简单,更有效但我试图让它以这种方式工作.

我希望得到字符串中包含5位数字的最大数字.我想用这个subString方法.作为输出,我只得到前5个数字,并且它不会遍历字符串的其余部分.

public class thousandDigits
{
   public static void main(String[] args)
   {

    String num = new String ("73167176531330624919225119674426574742355349194934" +
                             "96983520312774506326239578318016984801869478851843" +
                             "85861560789112949495459501737958331952853208805511" +
                             "12540698747158523863050715693290963295227443043557" +
                             "66896648950445244523161731856403098711121722383113" +
                             "62229893423380308135336276614282806444486645238749" +
                             "30358907296290491560440772390713810515859307960866" +
                             "70172427121883998797908792274921901699720888093776" +
                             "65727333001053367881220235421809751254540594752243" +
                             "52584907711670556013604839586446706324415722155397" +
                             "53697817977846174064955149290862569321978468622482" +
                             "83972241375657056057490261407972968652414535100474" +
                             "82166370484403199890008895243450658541227588666881" +
                             "16427171479924442928230863465674813919123162824586" +
                             "17866458359124566529476545682848912883142607690042" +
                             "24219022671055626321111109370544217506941658960408" +
                             "07198403850962455444362981230987879927244284909188" +
                             "84580156166097919133875499200524063689912560717606" +
                             "05886116467109405077541002256983155200055935729725" +
                             "71636269561882670428252483600823257530420752963450") ;


    int greatest = 0;
    int max = -1;
    int numChar = Integer.parseInt(num.substring(0, 5));

    for (int i = 0; i < num.length() …
Run Code Online (Sandbox Code Playgroud)

java string numbers substring parseint

3
推荐指数
1
解决办法
150
查看次数