Tag: arrays

Java – 以逗号分隔的记录到String Array中?

我是Java的新手,所以请光临我。 我正在尝试读取一个BufferedReader,该文件读入包含以逗号分隔的记录的文件。 我想在两个逗号之间拆分每个字符串(或记录),删除双引号,并将每个字符串放入String数组的索引中。 例如: 说我在文件中有这一行: (“0001”,“00203”,“82409”(换行符) “0002”,“00204”,“82500”(换行符) 等等。) 我想将0001放入一个String数组[1],我想将00203放入String数组[2],依此类推…… 以下代码遍历文件,将第二列中的所有记录放入String数组[2]。 这意味着,在执行下面的代码后,如果我执行System.out.println(arr [2]),它将打印00203和00204,而我希望数组[2]为00203,数组[5]为00204。 这是我的代码: public String[] getArray(String source) { FileInputStream fileinput = new FileInputStream(source); GZIPInputStream gzip = new GZIPInputStream(fileinput); InputStreamReader inputstream = new InputStreamReader(gzip); BufferedReader bufr = new BufferedReader(inputstream); String str = null; String[] arr = null; while((str = bufr.readLine()) != null) { arr = str.replace(“\””, […]

Java – 新的Stack 相当于通用数据类型Stack 的新Stack ?

new Stack[N]等同于通用数据类型Stack new Stack[N] ? 编辑:虽然我明白混合generics类型和数组应该最好避免,并且存在更强大的解决方案,我的查询仍然存在:广泛认可的教科书,如由韦恩和罗伯特塞奇威克(第158页)的算法,第4版建议使用构造如下: Stack[] a = (Stack[]) new Stack[N];

添加大型查询时,如何修复SpreadSheetAddRows函数崩溃?

编辑3:感谢@Leigh的帮助,我已将问题缩小到查询中的日期列。 使用原始代码集和POI时,当SpreadSheetAddRows()尝试添加包含类似日期的单元格的非常大的查询时,页面崩溃。 我在这里做了一个错误报告: https : //bugbase.adobe.com/index.cfm?event = bug &id = 3432184 。 我有一个查询,我添加到一个spreadhseet对象,当查询具有非常多的行(在此示例中为18583)时,该对象似乎出错。 确切的错误如下: java.lang.ArrayIndexOutOfBoundsException: -32735 at java.util.ArrayList.get(ArrayList.java:324) at org.apache.poi.hssf.model.WorkbookRecordList.get(WorkbookRecordList.j ava:50) at org.apache.poi.hssf.model.Workbook.getExFormatAt(Workbook.java:787) at org.apache.poi.hssf.usermodel.HSSFCell.getCellStyle(HSSFCell.java:901 ) at org.apache.poi.hssf.usermodel.HSSFSheet.autoSizeColumn(HSSFSheet.java :1727) at coldfusion.excel.Excel.autoResize(Excel.java:1246) at coldfusion.excel.Excel.autoResize(Excel.java:1240) at coldfusion.excel.Excel.addRows(Excel.java:1214) at coldfusion.runtime.CFPage.SpreadSheetAddRows(CFPage.java:7089) at coldfusion.runtime.CFPage.SpreadSheetAddRows(CFPage.java:7076) 这是相关的代码: 编辑:我之前使用cfspreadsheet成功,但它不会生成带有标题的电子表格(并且它还有需要创建临时文件来提供服务的缺点。) EDIT2:关注@Leigh建议我更新了CF9 / lib文件夹中的POI。 现在错误已更改为以下内容: 给出以下消息:org.apache.poi.hssf.util.HSSFColor.getIndexHash()Ljava / util /哈希表; 错误代码: java.lang.NoSuchMethodError: org.apache.poi.hssf.util.HSSFColor.getIndexHash()Ljava/util/Hashtable; at coldfusion.excel.Excel.getHSSFColor(Excel.java:2094) at […]

创建无界和有界外卡类型数组之间的区别?

为什么这段代码有效 ArrayList[] arr = new ArrayList[2]; 但以下两个不是? ArrayList[] arr = new ArrayList[2]; ArrayList[] arr = new ArrayList[2]; 最后两行生成编译错误; 错误:通用数组创建。 请澄清差异。 更新 另一方面, ArrayList[] arr = new ArrayList[2]; 编译好但是 ArrayList arr = new ArrayList(); 不。

API java 5及更多:我应该返回一个数组还是一个Collection?

本着最佳实践的精神:总是返回一个____,从不____ ,我在即将从JDK1.4.2迁移到JDK5以及更多时遇到类似的问题。 (是的,我知道 , JDK1.4.2是EOL! ;-))。 对于返回集合的函数(不是简单的属性集合 ),我总是更喜欢(在JDK1.4.2中)返回一个Array而不是一个通用的List,因为: 它强制执行返回类型( MyObject[]而不是对象列表,在静态上更加类型安全 – 如’编译’ – 级别) 它为返回的集合建议一个“只读”字符(将一个元素添加到集合中会更复杂,即使这不像c#中的’只读’关键字那样严格)。 这与说“不可变”不同,因为数组中的引用仍然可以修改… 当然,我总是创建这个返回的数组(我没有公开任何’内部’数组) 现在,在JDK5及更多版本中,如果需要,我可以使用List 。 在java5中编码时选择返回MyObject[]而不是List或Collection什么好理由? 奖金,如果使用Collection ,是否可以: 对返回的集合强制执行只读属性? (没有add()或remove()可能) 对返回的集合强制执行不可变的方面? (甚至不能修改该集合的引用) PS: JavaGenericFAQ没有那个。

从一个arrays复制到另一个arrays的最佳方式

当我运行以下代码时,没有任何东西被复制 – 我做错了什么? 另外,这是将数据从一个数组复制到另一个数组的最佳/最有效的方法吗? public class A { public static void main(String args[]) { int a[] = { 1, 2, 3, 4, 5, 6 }; int b[] = new int[a.length]; for (int i = 0; i < a.length; i++) { a[i] = b[i]; } } }

Java中的String 和String …有什么区别?

我应该如何在Java中声明main()方法? 喜欢这个: public static void main(String[] args) { System.out.println(“foo”); } 或者像这样: public static void main(String… args) { System.out.println(“bar”); } String[]和String…之间的区别是什么?如果有的话?

读取文件并将名称和数字存储在两个数组中

我正在研究一个程序,它读取文件并将名称和分数存储在两个独立的数组中,但我很挣扎。 这就是我到目前为止所拥有的。 我为名称名称创建了一个数组,但我很困惑如何将名称复制到数组的每个索引中。 import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ScannerReadFileSplit { public static void main(String[] args) { File file = new File(“NamesScore.txt”); String[] names = new String[100]; int[] scores = new int[100]; int i; try { Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); String [] words = line.split(“\t”); […]

切换不兼容的类型错误

我正在为我的class级写一个罗马数字程序。 我正在使用switch语句将字符串转换为整数。 但是,当我运行它时,我得到一个不兼容的类型错误。 我正在运行java 7,所以这不是问题。 这是我的代码: public static void main() { // Declare local variables Scanner input = new Scanner(System.in); String rNum; int i; int[] rArray; // Display program purpose System.out.println(“This Program Converts Roman numerals to decimals”); System.out.println(“The Roman numerals are I (1), V (5), X (10), L (50), C (100), D (500) and M […]

从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? 所以这意味着我每次进行手术都需要施放?