- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 javascript 中找到了一个简单而漂亮的 Base64 库,并想从中创建一个 java 类(我知道用于此目的的现有 java 库!,但我不感兴趣)。所以这里是一段使用 isNaN 的 javascript 代码..我需要一个等效的 java
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
<小时/>
并包含javascript函数:
// private property
_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
private static final Integer NaN = 0;
public static String encode(String input){
StringBuffer output = new StringBuffer();
int chr1 = 0, chr2 = 0, chr3 = 0;
int enc1, enc2, enc3, enc4;
int i = 0;
input = _utf8_encode(input);
while (i < input.length()) {
//before: chr1 = Character.codePointAt(input, i++);
if (i+1>=input.length()){
chr1 = NaN;
i++;
} else {
chr1 = Character.codePointAt(input, i++);
}
if (i+1>=input.length()){
chr2 = NaN;
i++;
} else {
chr2 = Character.codePointAt(input, i++);
}
if (i+1>=input.length()){
chr3 = NaN;
i++;
} else {
chr3 = Character.codePointAt(input, i++);
}
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
//System.out.println(chr2+ " -> "+ String.valueOf(Character.toChars(chr2)) + "| "+String.valueOf(Character.toChars(chr2)).length());
//System.out.println(chr3+ " -> "+ String.valueOf(Character.toChars(chr3)) + "| "+String.valueOf(Character.toChars(chr3)).length());
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output.append(_keyStr.charAt(enc1))
.append(_keyStr.charAt(enc2))
.append(_keyStr.charAt(enc3))
.append(_keyStr.charAt(enc4));
}
return output.toString();
}
private static boolean isNaN(int charCodePoint){
if(charCodePoint==NaN)
return true;
else
return false;
}
<小时/>
我在 java 中的最后一次尝试是使用:
Character.isDigit((char)chr2)..不行..
参见 isNaN(int charCodePoint) .. 也不行
<小时/>并包含java等效函数:
//字符串_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
public static String encode(String input){
StringBuffer output = new StringBuffer();
int chr1, chr2, chr3;
int enc1, enc2, enc3, enc4;
int i = 0;
input = _utf8_encode(input);
while (i < input.length()) {
chr1 = Character.codePointAt(input, i++);
chr2 = Character.codePointAt(input, i++);
chr3 = Character.codePointAt(input, i++);
enc1 = (chr1 >> 2);
enc2 = (((chr1 & 3) << 4) | (chr2 >> 4));
enc3 = (((chr2 & 15) << 2) | (chr3 >> 6));
enc4 = (chr3 & 63);
if (Character.isDigit((char)chr2)==false) {
enc3 = enc4 = 64;
} else if (Character.isDigit((char)chr3)==false) {
enc4 = 64;
}
output.append(_keyStr.charAt(enc1))
.append(_keyStr.charAt(enc2))
.append(_keyStr.charAt(enc3))
.append(_keyStr.charAt(enc4));
}
return output.toString();
}
<小时/>
与 javascript 的 isNaN 函数等效的正确 java 函数是什么?
最佳答案
没有直接等效的方法适用于您的案例。
在调用codePointAt()
之前,您需要检查索引是否在范围内。如果不是,则相当于您的 JavaScript 代码从 charCodeAt()
获取 NaN
。然而,这会使其余代码变得相当复杂。
简而言之,JavaScript 代码的编写方式不适合轻松地翻译成 Java。
关于java 与 javascript 的 isNaN 等效的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19949812/
Soooooo isNaN 在 JavaScript 中显然是错误的,例如: isNaN('') isNaN(' ') isNaN(true) isNaN(false) isNaN([0]) 返回
这个问题在这里已经有了答案: Why does isNaN(" ") (string with spaces) equal false? (25 个答案) Why does Number.isNaN
我对 NaN 的工作原理感到困惑。我执行了 isNaN(undefined) 它返回了 true 。但是,如果我将使用 Number.isNaN(undefined),它将返回 false。那么我应该
我对 NaN 的工作原理感到困惑。我执行了 isNaN(undefined) 它返回了 true 。但是,如果我将使用 Number.isNaN(undefined),它将返回 false。那么我应该
我需要一个内置函数来检查变量是否包含 Javascript 中的有效数字,如下 this link我尝试使用 is isNaN ,但是当我使用一个引号 ('') 或两个引号 ("") 时,结果始终为
据我所知,== 检查值是否相等,而 is 检查值背后结构的同一性(比如 == = 在某些其他语言中)。 鉴于此,我不明白以下内容: np.isnan(30) == False Out[19]: Tru
在 java 中,我们可以对 float 和 double 值使用 isNan() 方法。 例如: if (!Double.isNaN(0.01)) { // condition happ
我正在尝试开发一个小型财务页面,您可以在其中输入您的元素的价格、您可以负担的预付款以及您想要支付的年数,当您提交时,它会告诉您您的金额我们将按月付款。 我遇到的问题是,如果有人在其中一个字段中输入字母
我有一个脚本,我可以在一个文本框中输入一个数字,它将计算其他文本框中的等效值。 $("input[type=text]").keyup(function () { var number
根据MDN page 1 关于isNaN(强调我的): Unlike all other possible values in JavaScript, it is not possible to re
我无法在我的Visual C++项目中编译glm::isnan()。 #include glm::vec3 my_vector = ... ; bool b = glm::isnan(my_vect
我正在创建一个小计算器。其中部分功能允许您输入最多 4 个数字,但也可以只输入 1,2 或 3 个数字。我的代码可以正常工作,但当我只输入 1、2 或 3 个数字时,我会得到未输入数字的 NaN 结果
我有两个字段。第一个是名称字段,另一个是数字字段。我想检查数字字段是否为数字,如果不是,则将使用 select() 并且背景变为黄色而不是蓝色。不知何故,我没有得到我想要的。 window.onloa
新手在这里学习 我正在尝试检查输入到我的表单中的数据,如果输入到第二个或第三个输入中的数据不是数字(即按字母顺序排列),则向用户显示信息不是数字的通知。我正在使用“isNaN”函数来执行此操作,但根据
我正在使用 isNan 函数来检查输入的值是否为数字: if(isNaN(num)) { alert('I am not a number'); } else { // } 但是,如
这是我放在文本框上以限制输入数字的属性。 onKeyPress="if(isNaN(String.fromCharCode(event.keyCode))) event.preventDefault
我有一个函数来测试提示输入是否是数字,如下所示: function myFunction() { var person = prompt("Please enter your name", "
我是 JavaScript 的新手,我尝试运行一个简单的脚本,如果它没有正确完成(即如果条目不是数字),它会给我的字段一个红色的边框,但如果该字段则将边框颜色变为绿色然后正确填写,但无法提交表单,因为
只是 try catch 非数字输入阅读很多内容。尝试了decimalDigitCharacterSet(发现很难相信以“decimal”一词开头的东西不包含小数)。尝试可变字符集来添加小数。一直在努
isnan() 函数也接受 .(点)。如何预防它们。这是示例代码: var Price = $("#Price").val(); if (Pric
我是一名优秀的程序员,十分优秀!