Java 将列中的元素从 String 数组复制到新的 int 数组
Java copy elements in column from String array to new int array
在一些我似乎无法正确解决的问题上得到了一些帮助。
我有以下代码显示 csv 文件中的值。这是有效的。
while(file.hasNext()){
String data = file.nextLine();
String[] values = data.split(",");
for(String index : values){
System.out.printf("%s \t", index);
}
System.out.println();
}
代码显示:
1 John Smith Engineering
2 Jim Jones Cooking
我想从 values[0](即 ID - 1,2)中获取值并将它们复制到一个新的 int 数组中,这样我就可以传递这个到其他方法来执行搜索等等。任何帮助将不胜感激。
谢谢!
只需将值[0] 保存到单独的列表中并将其转换为数组。如果你知道 id 的数量,你可以直接将你的 id 保存到一个数组中。
List<String> ids = new ArrayList<>();
while (file.hasNext()) {
String data = file.nextLine();
String[] values = data.split(",");
if (values.length >= 1) {
ids.add(values[0]);
for (String index : values) {
System.out.printf("%s \t", index);
}
}
System.out.println();
}
String[] idsArray = new Integer[ids.size()];
ids = ids.toArray(idsArray);
// use idsArray
不太确定我完全理解你的问题,但你可以试试这个:
String[] str_array = {...};
int[] int_array = {...};
int_array[index] = Integer.parseInt(str_array[index]);
通过这种方式,您可以将字符串添加到 int 数组,注意 NumberFormatExceptions。
编辑:
ArrayList<Integer> ids = new ArrayList<>(); // IDs: 1, 43, 23...
Scanner scanner = new Scanner(System.in); // Reading from console
int input = scanner.nextInt();
if (ids.contains(input)) {
// true
} else {
// false
}
你可以试试这个:)
Map<Integer, List<String>> map = new HashMap<Integer, List<String>>();
while(file.hasNext()){
String data = file.nextLine();
String[] values = data.split(",");
for(int key=0;key<values.size();key++){
if (!map.containsKey(key)){
map.put(key, new ArrayList<String>());
}
map.get(key).add(values[key]);
}
}
Integer[] items = new Integer[map.get(0).size()];
for (i = 0; i < map.get(0).size() ; i++) {
items[i]=Integer.valueOf(map.get(0).get(i));
}
在一些我似乎无法正确解决的问题上得到了一些帮助。
我有以下代码显示 csv 文件中的值。这是有效的。
while(file.hasNext()){
String data = file.nextLine();
String[] values = data.split(",");
for(String index : values){
System.out.printf("%s \t", index);
}
System.out.println();
}
代码显示:
1 John Smith Engineering
2 Jim Jones Cooking
我想从 values[0](即 ID - 1,2)中获取值并将它们复制到一个新的 int 数组中,这样我就可以传递这个到其他方法来执行搜索等等。任何帮助将不胜感激。
谢谢!
只需将值[0] 保存到单独的列表中并将其转换为数组。如果你知道 id 的数量,你可以直接将你的 id 保存到一个数组中。
List<String> ids = new ArrayList<>();
while (file.hasNext()) {
String data = file.nextLine();
String[] values = data.split(",");
if (values.length >= 1) {
ids.add(values[0]);
for (String index : values) {
System.out.printf("%s \t", index);
}
}
System.out.println();
}
String[] idsArray = new Integer[ids.size()];
ids = ids.toArray(idsArray);
// use idsArray
不太确定我完全理解你的问题,但你可以试试这个:
String[] str_array = {...};
int[] int_array = {...};
int_array[index] = Integer.parseInt(str_array[index]);
通过这种方式,您可以将字符串添加到 int 数组,注意 NumberFormatExceptions。
编辑:
ArrayList<Integer> ids = new ArrayList<>(); // IDs: 1, 43, 23...
Scanner scanner = new Scanner(System.in); // Reading from console
int input = scanner.nextInt();
if (ids.contains(input)) {
// true
} else {
// false
}
你可以试试这个:)
Map<Integer, List<String>> map = new HashMap<Integer, List<String>>();
while(file.hasNext()){
String data = file.nextLine();
String[] values = data.split(",");
for(int key=0;key<values.size();key++){
if (!map.containsKey(key)){
map.put(key, new ArrayList<String>());
}
map.get(key).add(values[key]);
}
}
Integer[] items = new Integer[map.get(0).size()];
for (i = 0; i < map.get(0).size() ; i++) {
items[i]=Integer.valueOf(map.get(0).get(i));
}