Không gán được index của mảng vào biến trong Java
Chào mọi người!
Mình có một bài tập về đọc file excel với yêu cầu: Trong một file exel có r dòng và c cột, viết chương trình kiểm tra 2 cột TEN_SKU_HIEN_THI (cột n < c)
và cột TEN_SAN_PHAM (cột m < c)
với điều kiện len của chuỗi
cột n nhỏ hơn 68 ký tự và cột m nhỏ hơn 62 ký tự.
Hướng giải quyết của mình như sau:
- Đầu tiên mình tạo
ArrayList<String>
chứa tất cả giá trị củadòng đầu tiên row(0)
của file excel. - Tiếp theo, mình so sánh giá trị phần tử của mảng vừa tạo với
String TEN_SKU_HIEN_THI
vàTEN_SAN_PHAM
. Nếu bằng nhau, mình sẽ lấyindex tại vị trí đó của mảng gán vào m và n
. - Sau đó, mình sẽ có một
ArrayList<String>
khác để chứa giá trị củarow(1) đến row(r)
tại cộtTEN_SKU_HIEN_THI
và tiến hành so sánh điều kiện. - Tương tự như vậy đối với
TEN_SAN_PHAM
.
Nhưng khi tiến hành 2 bước đầu tiên thì mình không sao gán đượcindex của mảng
vào biến numberIndex
, để tìm ra giá trị của m.
Biến numberIndex
mình tạo ra luôn luôn trả về giá trị mặc định là 0
.
Mọi người cho mình hỏi nguyên nhân là do đâu ạ?
Cảm ơn mọi người.
Và đây là đoạn code mình đã viết để tiến hành 2 bước đầu tiên:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class productionTool {
static int numberIndex; //numberIndex luôn luôn bằng 0
static ArrayList<String> arrayTitleRow = null;
public productionTool() {
}
/*------------------------------------------------------------------------*/
public static void main(String[] args) throws InvalidFormatException, IOException {
File file = new File("C:\Users\nguye\Desktop\1462056.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(file);
XSSFSheet sheet = workBook.getSheetAt(0);
arrayTitleRow = new ArrayList<String>();
productionTool tool = new productionTool();
for(int i = 0; i < 30; i++) {
String cellOfFirstRow = sheet.getRow(0).getCell(i).getStringCellValue();
arrayTitleRow.add(cellOfFirstRow);
}
System.out.println(arrayTitleRow);
System.out.println(arrayTitleRow.size());
System.out.println(tool.positionTitle("TEN_SKU_HIEN_THI"));
}
/*-----------------------------------------------------------------------*/
public int positionTitle(String firstTitle) {
for(int j = 0; j < arrayTitleRow.size(); j++) {
String title = arrayTitleRow.get(j).toString();
if(firstTitle == title) {
numberIndex = j;
}
}
return numberIndex;
}
}
Khi so sánh nên dùng .equals() nhé bạn, không nên dùng “==”