假设我有一个包含这些信息的文件
1, 2, 3, 4
5, 6, 7, 8
现在我怎么能要求程序只将4(这是第一行的结尾)写入另一个文件。但这是诀窍,不取决于用户的输入。
所以在程序结束后,另一个文件将包含
4
我尝试修剪Line(String = String1.trim())并使用函数endsWith()但我需要在这些括号中放入一个String。
我3周前开始使用java,所以请耐心等待,谢谢。
答案 0 :(得分:1)
使用split()
String line = in.nextLine(); // read a line
String[] tokens = line.split("[\\s,]+"); // splits the line into an array
out.write(tokens[tokens.length - 1]); // print the last index of the array.
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用split()函数将分隔符上的一行拆分为String数组。所以:
String x = "1,2,3,4";
String[] split = x.split(",");
现在split数组包含各个项目,你可以得到最后一个:
String last = split[split.length - 1];
答案 3 :(得分:0)
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ReadStringFromFileLineByLine {
public static void main(String[] args) {
try {
File file = new File("test.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = bufferedReader.readLine()) != null) {
if(line.Trim().endsWith( "4" )){
stringBuffer.append(line);
stringBuffer.append("\n");
}
}
fileReader.close();
System.out.println("Contents of file:");
System.out.println(stringBuffer.toString());
// write the buffer content to new file.
File file = new File("newfile.txt");
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(stringBuffer.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 4 :(得分:0)
有两种方法可以做到这一点:
final String input = "1, 2, 3, 4";
final Pattern pattern = Pattern.compile("(.)\\s*$");
final Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
使用的模式意味着:
(.)
- ()捕获.any single char \\s*
- 后跟0个或更多空白字符$
- 后面是行尾