Java新手求助:仅用String与System类从随机字符串提取特定字符
仅用String和System类提取特定字符的解决方案
嘿,作为Java新手能聚焦基础类来搞定这个需求,思路真的很扎实!咱们完全不用那些禁用的工具类,只靠String的核心方法和System的输出就能轻松实现。
核心思路
用String的length()拿到字符串总长度,再通过charAt(int index)逐个取出每个字符,配合循环遍历所有位置,判断字符是否符合你要提取的条件,符合的话要么直接输出,要么拼接到新的String里统一展示。
示例代码(提取所有小写字母'a')
public class ExtractTargetChar { public static void main(String[] args) { // 这里替换成你的随机生成字符串 String randomString = "rAnDoMsTr1nGaAaXyz"; // 定义你要提取的目标字符 char target = 'a'; // 方式一:逐个输出匹配到的字符 System.out.println("提取到的字符(逐个输出):"); for (int i = 0; i < randomString.length(); i++) { char current = randomString.charAt(i); if (current == target) { System.out.print(current + " "); } } System.out.println(); // 换行分隔 // 方式二:拼接成新字符串后输出 String result = ""; for (int i = 0; i < randomString.length(); i++) { char current = randomString.charAt(i); if (current == target) { // 用String的concat方法拼接,也可以用 result += current; result = result.concat(String.valueOf(current)); } } System.out.println("提取结果拼接后的字符串:" + result); } }
代码细节说明
randomString.length():获取字符串的总长度,用来控制循环的边界,保证每个字符都能被遍历到。randomString.charAt(i):通过索引i获取对应位置的字符(注意字符串索引从0开始哦)。result.concat(...):String类自带的拼接方法,把符合条件的字符逐步拼接到结果字符串中,用+=操作符也能达到同样效果,写法更简洁。System.out.print/println():完全依赖System类完成输出,符合你的限制要求。
扩展:提取一类字符(比如数字、字母)
如果需要提取的是某一类字符,不用额外工具类的话,直接通过字符的ASCII范围判断就行:
- 提取所有数字:
if (current >= '0' && current <= '9') - 提取所有大写字母:
if (current >= 'A' && current <= 'Z') - 提取所有小写字母:
if (current >= 'a' && current <= 'z')
这样就完全符合你“仅用String和System类”的要求啦!
内容的提问来源于stack exchange,提问作者DarkMayo
相关产品推荐
相关产品推荐

