gpt4 book ai didi

Java - 区分字符串

转载 作者:行者123 更新时间:2023-11-30 06:23:01 25 4
gpt4 key购买 nike

java中有数字通配符吗?我正在打开一个文件并查看数据列表,我需要区分三个以“M”开头的信息。但是,其中一个后面紧跟着数字,另外两个后面跟着字母。我想知道是否有办法检查带有通配符的字母后是否有数字。我确定您可以使用 ASCII 执行此操作,但我也不确定如何执行它。

编辑:我仍然有问题,所以这是我的代码。

import java.io.*;
import java.util.*;
import java.util.regex.*;

public class addSevTest{
public static void main(String[] args) throws IOException{
FileReader fr = new FileReader("output6.txt");
BufferedReader br = new BufferedReader(fr);
String line;
Pattern pattern = Pattern.compile(br.readLine());
Matcher matcher = pattern.matcher(br.readLine());

List<String> list = new ArrayList<String>();
while ((line = br.readLine()) != null){
if(line.contains("100%") || line.contains("70%") || matcher.find("[.][1-9]")){
list.add(line);
list.add(" 2");
list.add("\n");
//System.out.println('Using String matches method: '+line.matches('.M'));
}else if(line.startsWith("MDRALM")){
list.add(line);
list.add(" 3");
list.add("\n");
}else if(line.startsWith("SOL") || line.startsWith("I/O") || line.startsWith("AH") || line.startsWith("LT")){
continue;
}else{
list.add(line);
list.add(" 1");
list.add("\n");
}
}

/*while ((line = br.readLine()) != null){
if(line.contains("CP")){
list.add(line);
list.add("\n");
}
}*/
br.close();

FileWriter writer = new FileWriter("addSevTest_O.txt");
for(String str: list){
writer.write(str);
}
writer.close();
}

最佳答案

最好使用一些简单的正则表达式。
我找到了一些基本教程,您可以浏览这里的基础知识:

还有一些工具可以在您的旅程中为您提供帮助:

编辑

在您添加的代码中,尝试替换它:

    if(line.contains("100%") || line.contains("70%") || matcher.find("[.][1-9]"))

用这个:

    if(line.contains("100%") || line.contains("70%") || line.matches("M[1-9]+.*"))

M 匹配该行的第一个字母。 [1-9] 匹配数字,+表示一个或多个。 .* 表示数字后面的零个或多个附加字符也将匹配。

您在此处获得的Pattern/Matcher 内容对于您的目的来说有些过分了。

关于Java - 区分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639311/

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