01/10/2018, 16:18

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ủa dò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_THITEN_SAN_PHAM. Nếu bằng nhau, mình sẽ lấy index 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ủa row(1) đến row(r) tại cột TEN_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;
		
	}
}
Nguyễn Đình Anh viết 18:32 ngày 01/10/2018

firstTitle == title

Khi so sánh nên dùng .equals() nhé bạn, không nên dùng “==”

Bài liên quan
0