⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tools.java

📁 一个java的ETL工具
💻 JAVA
字号:
import java.util.ArrayList;
import java.util.StringTokenizer;


public class Tools
{
	public static ArrayList CSV_to_AL(String sentCSV)
	{
		ArrayList returnAL = new ArrayList();
		
		StringTokenizer st = new StringTokenizer(sentCSV, ",");
		while (st.hasMoreTokens())
		{
			returnAL.add(st.nextToken());
		}
		returnAL.trimToSize();
		
		return returnAL;
	}

	// String - General Methods
	
	public static String repeat(String sentString, int repititions)
	{
		String returnString = "";
		
		for (int i=0; i<repititions; i++)
		{
			returnString = returnString + sentString;
		}
		
		return returnString;
	}		
	
	public static String replace(String content, String oldString, String newString)
	{   
		if (oldString.equals(newString)) return content;
		
		String returnString = "";
		
		int hitIndex;
		String partBefore;
		
		while (content.length() > 0)
		{
			hitIndex = content.indexOf(oldString);
			if (hitIndex == -1)
			{
				returnString = returnString + content;
				content = "";
			}
			else
			{
				partBefore = content.substring(0,hitIndex);
				returnString = returnString + partBefore + newString;
				content = content.substring(hitIndex + oldString.length());
			}
		}		

		return returnString;
	}	

	//  Conversion Methods

	public static int[] convertStringToDatetimeInts(String sentDatetimeAsString)
	{
		//  sentDatetimesAsString required format = YYYY-MM-DD HH:MM:SS
		
		int[] returnArray = new int[7];
		
		int year = -1;
		int month = -1;
		int day = -1;
		int hour = -1;
		int minute = -1;
		int second = -1;
		
		boolean legalConversion = true;
		
		int[] maxDaysInMonth = {31,28,31,30,31,30,31,31,30,31,30,31};

		ArrayList tokens = new ArrayList();
		StringTokenizer st = new StringTokenizer(sentDatetimeAsString, "-: ");
		while (st.hasMoreTokens())
		{
			tokens.add(st.nextToken());
		}
		tokens.trimToSize();
		
		if (tokens.size()==6)
		{
			for (int i=0; i<tokens.size(); i++)
			{
				try
				{
					switch (i)
					{
						case 0:  //  year
							year = Integer.parseInt((String)tokens.get(i));
							returnArray[1] = year;
							if (!(year>=1900 && year<=2100)) legalConversion = false;
							break;
						case 1:  //  month
							month = Integer.parseInt((String)tokens.get(i));
							returnArray[2] = month;
							if (!(month>=1 && month<=12)) legalConversion = false;
							break;
						case 2:  //  day
							day = Integer.parseInt((String)tokens.get(i));
							returnArray[3] = day;
							if (legalConversion)
							{
								int extraDay = 0;
								if (month == 2)
								{
									if ((year % 4) == 0)
										extraDay = 1;
									else
										extraDay = 0;	
								}	
								if (!(day>=1 && day<=maxDaysInMonth[month]+extraDay)) legalConversion = false;
							}	
							break;
						case 3:  //  hour
							hour = Integer.parseInt((String)tokens.get(i));
							returnArray[4] = hour;
							if (!(hour>=0 && hour<=23)) legalConversion = false;
							break;
						case 4:  //  minute
							minute = Integer.parseInt((String)tokens.get(i));
							returnArray[5] = minute;
							if (!(minute>=0 && minute<=59)) legalConversion = false;
							break;
						case 5:  //  day
							second = Integer.parseInt((String)tokens.get(i));
							returnArray[6] = second;
							if (!(second>=0 && second<=59)) legalConversion = false;
							break;
					}
				}
				catch (NumberFormatException e)
				{
					legalConversion = false;
				}
			}
		}
		else
		{
			legalConversion = false;
		}							

		if (legalConversion)
			returnArray[0] = 1;
		else
			returnArray[0] = 0;
				
		return returnArray;
	}

	public static int[] convertStringToDateInts(String sentDateAsString)
	{
		//  sentDateAsString required format = YYYY-MM-DD
		
		int[] returnArray = new int[4];
		
		int year = -1;
		int month = -1;
		int day = -1;
		
		boolean legalConversion = true;
		
		int[] maxDaysInMonth = {31,28,31,30,31,30,31,31,30,31,30,31};

		ArrayList tokens = new ArrayList();
		StringTokenizer st = new StringTokenizer(sentDateAsString, "-");
		while (st.hasMoreTokens())
		{
			tokens.add(st.nextToken());
		}
		tokens.trimToSize();
		
		if (tokens.size()==3)
		{
			for (int i=0; i<tokens.size(); i++)
			{
				try
				{
					switch (i)
					{
						case 0:  //  year
							year = Integer.parseInt((String)tokens.get(i));
							returnArray[1] = year;
							if (!(year>=1900 && year<=2100)) legalConversion = false;
							break;
						case 1:  //  month
							month = Integer.parseInt((String)tokens.get(i));
							returnArray[2] = month;
							if (!(month>=1 && month<=12)) legalConversion = false;
							break;
						case 2:  //  day
							day = Integer.parseInt((String)tokens.get(i));
							returnArray[3] = day;
							if (legalConversion)
							{
								int extraDay = 0;
								if (month == 2)
								{
									if ((year % 4) == 0)
										extraDay = 1;
									else
										extraDay = 0;	
								}	
								if (!(day>=1 && day<=maxDaysInMonth[month]+extraDay)) legalConversion = false;
							}	
							break;
					}
				}
				catch (NumberFormatException e)
				{
					legalConversion = false;
				}
			}
		}
		else
		{
			legalConversion = false;
		}							

		if (legalConversion)
			returnArray[0] = 1;
		else
			returnArray[0] = 0;
				
		return returnArray;
	}

	public static int[] convertStringToTimeInts(String sentTimeAsString)
	{
		//  sentTimeAsString required format = HH:MM:SS
		
		int[] returnArray = new int[4];
		
		int hour = -1;
		int minute = -1;
		int second = -1;
		
		boolean legalConversion = true;
		
		ArrayList tokens = new ArrayList();
		StringTokenizer st = new StringTokenizer(sentTimeAsString, ":");
		while (st.hasMoreTokens())
		{
			tokens.add(st.nextToken());
		}
		tokens.trimToSize();
		
		if (tokens.size()==3)
		{
			for (int i=0; i<tokens.size(); i++)
			{
				try
				{
					switch (i)
					{
						case 0:  //  hour
							hour = Integer.parseInt((String)tokens.get(i));
							returnArray[1] = hour;
							if (!(hour>=0 && hour<=23)) legalConversion = false;
							break;
						case 1:  //  minute
							minute = Integer.parseInt((String)tokens.get(i));
							returnArray[2] = minute;
							if (!(minute>=0 && minute<=59)) legalConversion = false;
							break;
						case 2:  //  day
							second = Integer.parseInt((String)tokens.get(i));
							returnArray[3] = second;
							if (!(second>=0 && second<=59)) legalConversion = false;
							break;
					}
				}
				catch (NumberFormatException e)
				{
					legalConversion = false;
				}
			}
		}
		else
		{
			legalConversion = false;
		}							

		if (legalConversion)
			returnArray[0] = 1;
		else
			returnArray[0] = 0;
				
		return returnArray;
	}



}			

	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -