1 changed files with 0 additions and 124 deletions
@ -1,124 +0,0 @@ |
|||||
package java01; |
|
||||
|
|
||||
import java.util.List; |
|
||||
import java.util.regex.Matcher; |
|
||||
import java.util.regex.Pattern; |
|
||||
|
|
||||
public class DataCleaner { |
|
||||
|
|
||||
public List<Job> cleanJobs(List<Job> jobs) { |
|
||||
for (Job job : jobs) { |
|
||||
cleanJob(job); |
|
||||
} |
|
||||
return jobs; |
|
||||
} |
|
||||
|
|
||||
private void cleanJob(Job job) { |
|
||||
// 清理职位标题
|
|
||||
if (job.getTitle() != null) { |
|
||||
job.setTitle(job.getTitle().trim()); |
|
||||
} |
|
||||
|
|
||||
// 清理公司名称
|
|
||||
if (job.getCompany() != null) { |
|
||||
job.setCompany(job.getCompany().trim()); |
|
||||
} |
|
||||
|
|
||||
// 清理薪资
|
|
||||
if (job.getSalary() != null) { |
|
||||
job.setSalary(job.getSalary().trim()); |
|
||||
} |
|
||||
|
|
||||
// 清理地点
|
|
||||
if (job.getLocation() != null) { |
|
||||
job.setLocation(job.getLocation().trim()); |
|
||||
} |
|
||||
|
|
||||
// 清理经验
|
|
||||
if (job.getExperience() != null) { |
|
||||
job.setExperience(job.getExperience().trim()); |
|
||||
} |
|
||||
|
|
||||
// 清理学历
|
|
||||
if (job.getEducation() != null) { |
|
||||
job.setEducation(job.getEducation().trim()); |
|
||||
} |
|
||||
|
|
||||
// 清理技能
|
|
||||
if (job.getSkills() != null) { |
|
||||
job.setSkills(job.getSkills().trim()); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
// 提取薪资范围的最小值
|
|
||||
public int extractMinSalary(String salary) { |
|
||||
if (salary == null || salary.isEmpty()) { |
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
// 匹配薪资范围,如"10K-20K"
|
|
||||
Pattern pattern = Pattern.compile("(\\d+)K-(\\d+)K"); |
|
||||
Matcher matcher = pattern.matcher(salary); |
|
||||
|
|
||||
if (matcher.find()) { |
|
||||
return Integer.parseInt(matcher.group(1)) * 1000; |
|
||||
} |
|
||||
|
|
||||
// 匹配固定薪资,如"15K"
|
|
||||
pattern = Pattern.compile("(\\d+)K"); |
|
||||
matcher = pattern.matcher(salary); |
|
||||
if (matcher.find()) { |
|
||||
return Integer.parseInt(matcher.group(1)) * 1000; |
|
||||
} |
|
||||
|
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
// 提取薪资范围的最大值
|
|
||||
public int extractMaxSalary(String salary) { |
|
||||
if (salary == null || salary.isEmpty()) { |
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
// 匹配薪资范围,如"10K-20K"
|
|
||||
Pattern pattern = Pattern.compile("(\\d+)K-(\\d+)K"); |
|
||||
Matcher matcher = pattern.matcher(salary); |
|
||||
|
|
||||
if (matcher.find()) { |
|
||||
return Integer.parseInt(matcher.group(2)) * 1000; |
|
||||
} |
|
||||
|
|
||||
// 匹配固定薪资,如"15K"
|
|
||||
pattern = Pattern.compile("(\\d+)K"); |
|
||||
matcher = pattern.matcher(salary); |
|
||||
if (matcher.find()) { |
|
||||
return Integer.parseInt(matcher.group(1)) * 1000; |
|
||||
} |
|
||||
|
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
// 提取经验年限
|
|
||||
public int extractExperienceYears(String experience) { |
|
||||
if (experience == null || experience.isEmpty()) { |
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
// 匹配经验年限,如"3-5年"
|
|
||||
Pattern pattern = Pattern.compile("(\\d+)-(\\d+)年"); |
|
||||
Matcher matcher = pattern.matcher(experience); |
|
||||
|
|
||||
if (matcher.find()) { |
|
||||
return Integer.parseInt(matcher.group(1)); |
|
||||
} |
|
||||
|
|
||||
// 匹配固定经验,如"3年以上"
|
|
||||
pattern = Pattern.compile("(\\d+)年"); |
|
||||
matcher = pattern.matcher(experience); |
|
||||
if (matcher.find()) { |
|
||||
return Integer.parseInt(matcher.group(1)); |
|
||||
} |
|
||||
|
|
||||
return 0; |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue