我需要以下示例的Java代码帮助。
示例文件如下所示。我的要求是,如果行以PR开头,然后在行的末尾附加XYZ。
输入文件内容-
PA; AB; 2020; 1; 2
PR; DD; 2020; 3; 4
PB; AB; 2020; 5; 6
PR; DD; 2020; 7; 2
输出文件内容-
PA; AB; 2020; 1; 2
PR; DD; 2020; 3; 4XYZ
PB; AB; 2020; 5; 6
PR; DD; 2020; 7; 2XYZ
可以使用正则表达式和替换功能来实现。
请以任何方式帮助我解决问题。
问候
不需要正则表达式。您可以只检查字符串的前两个字符是否为“ PR”,如果是,则在其末尾附加“ XYZ”:
public static void main(String[] args) {
String[] arr = { "PA;AB;2020;1;2", "PR;DD;2020;3;4", "PB;AB;2020;5;6", "PR;DD;2020;7;2" };
arr = checkAndAppendValues(arr);
System.out.println(Arrays.toString(arr));
}
public static String[] checkAndAppendValues(String[] arr) {
for(int i = 0; i < arr.length; i++) {
if(arr[i].substring(0,2).equalsIgnoreCase("PR")) {
arr[i] = arr[i] + "XYZ";
}
}
return arr;
}
输出:
[PA;AB;2020;1;2, PR;DD;2020;3;4XYZ, PB;AB;2020;5;6, PR;DD;2020;7;2XYZ]
希望对您有帮助:)
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.read.file;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
*
* @author wilso
*/
public class Files {
public static void main(String[] args) throws FileNotFoundException, IOException {
File file = new File("C:\\Users\\wilso\\Downloads/system.txt");
StringBuilder stringBuilder = new StringBuilder();
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) {
String line;
while ((line = bufferedReader.readLine()) != null) {
if (line.startsWith("PR")) {
line = line + "XYZ";
}
stringBuilder.append(line);
stringBuilder.append("\r\n");
}
}
System.out.println(stringBuilder.toString());
}
}
结果是下一个
cd C:\ Users \ wilso \ OneDrive \ Documents \ NetBeansProjectsF \ OverFlow; “ JAVA_HOME = C:\ Program Files \ Java \ jdk1.8.0_91” cmd / c“ \” \“ C:\ Program Files \ NetBeans 8.0.2 \ java \ maven \ bin \ mvn.bat \” -Dexec.args = \“-classpath%classpath com.read.file.Files \” -Dexec.executable = \“ C:\ Program Files \ Java \ jdk1.8.0_91 \ bin \ java.exe \” -Dexec.classpathScope =运行时- Dmaven.ext.class.path = \“ C:\ Program Files \ NetBeans 8.0.2 \ java \ maven-nblib \ netbeans-eventspy.jar \” -Dfile.encoding = UTF-8 org.codehaus.mojo:exec- maven插件:1.2.1:exec \“”运行NetBeans保存时编译执行。跳过阶段执行,并且将使用依赖项项目的输出目录(启用“保存时编译”)代替其jar工件。扫描项目...
--- exec-maven-plugin:1.2.1:exec(default-cli)@ Overflow ---PA; AB; 2020; 1; 2PR; DD; 2020; 3; 4XYZPB; AB; 2020; 5; 6PR; DD; 2020; 7; 2XYZ
总时间:0.715秒结束于:COT 2020年1月30日星期四13:02:55
为什么不能只为每行做一个
line = line.replaceAll("^(PR.*)$","$1XYZ");
?
为什么不能只为每行做一个
line = line.replaceAll("^(PR.*)$","$1XYZ");
?