14 、(5分)字符串处理问题
Java语言中使用字符串对象String封装,String对象提供了丰富的处理方法,在Java的API文档中对String类型的主要常用方法摘要如下:
char charAt(int index) 返回指定索引处的 char 值。
int compareTo(String anotherString) 按字典顺序比较两个字符串。
int compareToIgnoreCase(String str) 不考虑大小写,按字典顺序比较两个字符串。
String concat(String str) 将指定字符串联到此字符串的结尾。
static String copyValueOf(char[] data) 返回指定数组中表示该字符序列的字符串。
boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束。
byte[] getBytes() 使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
byte[] getBytes(String charsetName) 使用指定的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将字符从此字符串复制到目标字符数组。
int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, int fromIndex) 从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。
int indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。
int indexOf(String str, int fromIndex) 从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
int lastIndexOf(int ch) 返回最后一次出现的指定字符在此字符串中的索引。
int lastIndexOf(int ch, int fromIndex) 从指定的索引处开始进行后向搜索,返回最后一次出现的指定字符在此字符串中的索引。
int lastIndexOf(String str) 返回在此字符串中最右边出现的指定子字符串的索引。
int lastIndexOf(String str, int fromIndex) 从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
int length() 返回此字符串的长度。
String replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。
String replace(CharSequence target, CharSequence replacement) 使用指定的字面值替换序列替换此字符串匹配字面值目标序列的每个子字符串。
String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。
char[] toCharArray() 将此字符串转换为一个新的字符数组。
String toLowerCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
String toString() 返回此对象本身(它已经是一个字符串!)。
String toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
String toUpperCase(Locale locale) 使用给定的 Locale 规则将此 String 中的所有字符都转换为大写。
String trim() 返回字符串的副本,忽略前导空白和尾部空白。
给你的问题是:请你利用字符串处理函数完成将标准输入的一行字符串中的数字字符提出来,你可以使用如下代码读入一行字符串:
String line=null;
Scanner in = new Scanner(System.in);
while(in.hasNextLine()){
line = in.next();
}
输入:
标准输入,每行输入不超过255个字符;
输出:
标准输出,将每行字符串中的数字字符使用一行连续输出。、、
测试用例输入:
adfafdafdaf[o,903243adsfaf23545asdf5
asd23fawet5gart0ringalr4dgjeo5ardsafa
测试用例输出:
903243235455
235045
思路:这里有两种思路,一种是在字符串中一个一个查找,另一种就是直接用匹配器进行匹配,我用的是第二种方法,关于第一种的方法部分代码见文末链接
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String string = sc.nextLine();
Pattern p = Pattern.compile("\\D");
Matcher m = p.matcher(string);
String s = m.replaceAll("").trim();
System.out.println(s);
}
}
}
作者:aslwr
出处:https://www.cnblogs.com/aslwr/p/17752513.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
各位可以多多推广哦φ(>ω<*)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~