Tag: int

从int到short的可能有损转换

我已将数组gx,数组arr定义为短类型。 但是为什么左边的操作可能会以int类型结束,我必须把它简化为什么? 编译器错误可能是从int到short的有损转换。 这是我的代码。 public PixImage sobelEdges() { short gy=0; for(int x=1;x<width-1;x++){ for(int y=1;y<height-1;y++){ // if(x=){ for(int z=0;z<3;z++){ gx[x][y][z]=arr[x-1][y-1][z]-arr[x+1][y-1][z]+2*arr[x-1][y][z]-2*arr[x+1][y][z]+arr[x-1][y+1][z]-arr[x+1][y+1][z]; } // } } } return this; // Don't forget to use the method mag2gray() above to convert energies to // pixel intensities. } 是因为所谓的unbox? 所以这意味着我每次进行手术都需要施放?

解析int时的NumberFormatException

所以我正在创建文件读取器/写入器,可以访问给定的文件并保存/读取它。我从文件读取时遇到问题。 内容是整数,字符串和double用“|”分隔 分隔符。 我使用StringTokenizer来分隔标记并将它们保存到每个单独的变量,但是当我读取整数时,我得到一个NumberFormatException,即使字符串只包含一个int。 这是代码: FileReader fr = new FileReader(filename); BufferedReader buff = new BufferedReader(fr); String line; while ((line = buff.readLine()) != null) { StringTokenizer st = new StringTokenizer(line, “|”); while (st.hasMoreElements()) { int Id = Integer.parseInt(st.nextToken()); String Name = st.nextToken(); double cordX = Double.parseDouble(st.nextToken()); double cordY = Double.parseDouble(st.nextToken()); } } 该文件的示例行: 8502113|Aarau|47.391355|8.051251 而错误: java.lang.NumberFormatException: […]

如何在java中将字符串数组转换为int数组

我在java程序中有一个像这样的字符串数组 String results[] = { “2”, “1”, “5”, “1” }; 我想将其转换为整数数组,如下所示: int results[] = { 2, 1, 5, 1 }; 最后我想找到该数组的所有int元素的总和。

将负Integer.MIN转换为正长

我想使用下面的代码将负Integer.MIN转换为正长值: long lv = -1 * value_int; 除了value_int = Integer.MIN_VALUE的值之外,上面的代码工作正常。 在Integer.MIN_VALUE的情况下,lv的值始终为Integer.MIN_VALUE; 下面的代码适用于所有情况,包括Integer.MIN_VALUE long lv = value_int; lv = -1 * value_int; 知道为什么long lv = -1 * value_int在Integer.MIN_VALUE情况下不起作用?

检查“int”类型的“boolean”结果

我正在学习Java,来自C,我发现boolean类型的语言之间有一个有趣的区别。 在C中没有bool / ean所以我们需要使用数字类型来表示布尔逻辑( 0 == false )。 我想在Java中不起作用: int i = 1; if (i) System.out.println(“i is true”); 也没有通过类型转换来改变条件: if ((boolean)i) 除了做以下事情之外: if ( i != 0 ) 有没有其他方法可以对int类型进行C-ish逻辑检查? 只是想知道是否有任何Java技巧允许布尔逻辑在这样的非布尔类型上。 编辑: 上面的例子非常简单,并使自己适应狭隘的思维范围。 当我最初问这个问题时,我也在考虑函数调用的非布尔返回。 例如Linux fork()调用。 它本身不会返回一个int ,但我可以很好地使用条件的数字返回值,如: if( fork() ) { // do child code 这允许我处理子项的条件中的代码,而不是父项(或者出现错误的否定返回结果)。 所以我现在还不知道足够的Java给出一个好的“Java”示例,但那是我最初的意图。

“不兼容的操作数类型int和字符串”

我刚刚开始学习代码(特别是Java),我正在测试一个密码系统,当你输入密码时,它变成变量“password”,它会检查它是否等于password2,即实际密码。 这是代码: import java.util.Scanner; public class LogicalOperators { public static void main(String args[]){ Scanner test = new Scanner(System.in); int age; int password; String password2; password2 = “Call of Duty”; System.out.println(“Please enter your age:”); age = test.nextInt(); if (age >=18) { System.out.println(“You are old enough.”); System.out.println(“Please enter the password:”); password = test.nextInt(); if (password == password2) […]

如何提示用户输入0到100之间的数字?

尝试将用户输入作为0到100之间的int,并提示用户“再试一次”,只要他们的输入与此条件不匹配即可。 到目前为止,我的代码在实现我的目标方面有些成功: import java.util.Scanner; public class FinalTestGrade { public static void main(String[] args) { Scanner studentInput = new Scanner (System.in ); int testGrade; System.out.println(“Please enter your test grade (0 to 100)”); while (!studentInput.hasNextInt()) { System.out.println(“Your input does not match the criteria, please enter a number between 0 and 100”); studentInput.next(); } testGrade = studentInput.nextInt(); while […]

从控制台读取int

如何在String中将String数组转换为int数组? 我正在从控制台读取一个整数字符流到一个String数组中 BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); for(c=0;c<str.length;c++) str[c] = br.readLine(); 其中str[]是字符串类型。 我想比较str[]内容…不能在字符上执行(错误)因此我想从控制台读取int 。 这可能吗?

为什么我的字符打印为数字而不是字符?

根据Java三元运算符expression ? statement1 : statement2 expression ? statement1 : statement2 ,如果expression为true则执行statement1 ,如果expression为false则执行statement2 。 但是当我跑步时: // some unnecessary codes not displaying char y = ‘y’; int i = 0; System.out.print(false ? i : y); 我期待它打印y但它的打印121 ,为什么? 编辑根据manouti的答案,编译器解释为int ,但如果是这样,那么为什么我在i看到死代码? 如果我做System.out.print(false ? 0 : x); 然后我得到y ,那么为什么在这种情况下编译器不会解释为int ?

java位操作>>>移位

为什么如果 int x = -1 // binary: 11111111111111111111111111111111 x = x >>> 31; 我们有00000000000000000000000000000001 但如果 int x = -1 x = x >>> 32; 我们有11111111111111111111111111111111(再次-1) 但不是00000000000000000000000000000000?