怎样把2a3b_8变成aabbb@呢(即遇到2a就输出2个a,遇到下划线就输出@) 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 _8那个不管它,我的意思是说把2a3b_变成aabbb@ 要怎样写代码呢,谢谢 public class Test { public static void main(String[] args) { String inStr = "2a3b_"; StringBuffer sb = new StringBuffer(); char[] inChars = inStr.toCharArray(); int temp = 0; for (char inChar : inChars) { if (inChar >= '1' && inChar <= '9') { temp = Integer.valueOf(String.valueOf(inChar)); } else { if (temp != 0) { for (int i = 0; i < temp; i++) { sb.append(inChar); } temp = 0; } else { if (inChar == '_') sb.append("@"); } } } System.out.println(sb.toString()); }}假设你的输入字符串是规则的,代码仅供参考,没仔细斟酌算法。 String s = "23a3b_6e_"; Pattern p = Pattern.compile("\\d+\\w|_"); Matcher m = p.matcher(s); String ss; StringBuilder sb = new StringBuilder(); while(m.find()) { ss = m.group(); if(ss.charAt(0)=='_') { sb.append('@'); }else { for(int i=0; i<Integer.parseInt(ss.substring(0, ss.length()-1)); i++) { sb.append(ss.charAt(ss.length()-1)); } } } System.out.println(sb.toString()); comp = new Component(this);这里的this到底起了什么作用? 学习 新手求高手们的帮助 一个入门的问题 问个关于HashMap类定义的疑问 为什么加上paint方法后我的菜单就不见了呢? 一个整数数据如何插入? JTextArea是怎样每一行设置着色的?? 什么原因!怎么会无发生成.exe文件? 读取文本框中的换行。 JavaScript里怎么判断一个字符型变量是不是一个有效的日期? main中如何调用面板? 图形中事件处理问题
String inStr = "2a3b_";
StringBuffer sb = new StringBuffer();
char[] inChars = inStr.toCharArray();
int temp = 0;
for (char inChar : inChars) { if (inChar >= '1' && inChar <= '9') {
temp = Integer.valueOf(String.valueOf(inChar));
} else {
if (temp != 0) {
for (int i = 0; i < temp; i++) {
sb.append(inChar);
}
temp = 0;
} else {
if (inChar == '_')
sb.append("@");
}
} }
System.out.println(sb.toString());
}}
假设你的输入字符串是规则的,代码仅供参考,没仔细斟酌算法。
Pattern p = Pattern.compile("\\d+\\w|_");
Matcher m = p.matcher(s);
String ss;
StringBuilder sb = new StringBuilder();
while(m.find()) {
ss = m.group();
if(ss.charAt(0)=='_') {
sb.append('@');
}else {
for(int i=0; i<Integer.parseInt(ss.substring(0, ss.length()-1)); i++) {
sb.append(ss.charAt(ss.length()-1));
}
}
}
System.out.println(sb.toString());