gpt4 book ai didi

java - 使用java中的split读取 ""之后和 "("之前的字符串

转载 作者:行者123 更新时间:2023-12-02 06:13:25 27 4
gpt4 key购买 nike

我有 txt 文件,其中包含以下行:第一行 - 20-01-01 Abs Def est (xabcd)第二行 - 290-01-01 Abs Def est ghj gfhj (xabcd fgjh fgjh)第三行 - 20-1-1 Absfghfgjhgj (xabcd ghj 5676gyj)

我想保留 3 个不同的字符串数组:

  1. [0]20-01-01 [1]290-01-01 [2]20-1-1
  2. [0]Abs Def est [1]Abs Def est ghj gfhj [2] Absfghfgjhgj
  3. [0]xabcd [1]xabcd fgjh fgjh [2] xabcd ghj 5676gyj

使用 String[] array 1 = myLine.split("") 我只有片段 20-01-01 但我还想保留其他 2 个字符串

编辑:我想使用正则表达式执行此操作(文本文件很大)

这是我的一段代码:请帮助,我搜索,但没有找到任何东西谢谢。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

import java.util.Comparator;
import java.util.Date;
import java.util.Set;
import java.util.TreeSet;


public class Holiday implements Comparable<Date>{

Date date;
String name;
public Holiday(Date date, String name){
this.date=date;
this.name=name;
}


public static void main(String[] args) throws IOException {


FileInputStream fis = new FileInputStream(new File("c:/holidays.txt"));
InputStreamReader isr = new InputStreamReader(fis, "windows-1251");
BufferedReader br = new BufferedReader(isr);



TreeSet<Holiday> tr=new TreeSet<>();

System.out.println(br.readLine());
String myLine = null;



while ( (myLine = br.readLine()) != null)
{
String[] array1 = myLine.split(" "); //OR use this
//String array1 = myLine.split(" ")[0];//befor " " read 1-st string

//String array2 = myLine.split("")[1];

//Holiday h=new Holiday(array1, name)
//String array1 = myLine.split(" ");
// check to make sure you have valid data
// String[] array2 = array1[1].split(" ");

System.out.println(array1[0]);
}

}




@Override
public int compareTo(Date o) {
// TODO Auto-generated method stub
return 0;
}

}

最佳答案

Pattern p = Pattern.compile("(.*?) (.*?) (\\(.*\\))");
Matcher m = p.matcher("20-01-01 Abs Def est (abcd)");
if (!m.matches()) throw new Exception("Invalid string");
String s1 = m.group(1); // 20-01-01
String s2 = m.group(2); // Abs Def est
String s3 = m.group(3); // (abcd)

关于java - 使用java中的split读取 ""之后和 "("之前的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21683463/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com