一串字符串算出其中大写字母,小写字母和数字的个数,并将这个结果按倒序输出

qq_37944267 2017-03-17 11:23:42
我想请问我将Int型用valueof转换字符类型,又用tochararray转化为字符数组,从而利用数组来实现倒序输出,即例如12,输出为21,但是结果不对,我试了一下,假如用过tocharrarry,我用length去测长度结果显示为1,是不是这样,假如数字个数为14个,把他给字符数组后,不是ch【0】=4,ch【1】=1,而是ch【0】=14,那么应该怎么调整呢
import java.util.*;
public class DING2 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 0;
int b = 0;
int num = 0;
char temp,temp1;
String a1,b1,num1;
String s;
Scanner r = new Scanner(System.in);
System.out.println("please input something");
s = r.next();
System.out.println(s+" ");
char[] ch = s.toCharArray();
for(int i=0;i<ch.length;i++){
if(ch[i]>'a'&&ch[i]<'z')
a++;
if(ch[i]>'A'&&ch[i]<'Z')
b++;
if(ch[i]<'9'&&ch[i]>'0')
num++;
}
System.out.println(+a+" "+b+" "+num);
a1 = String.valueOf(a);
b1 = String.valueOf(b);
num1 = String.valueOf(num);
char []ch1 = a1.toCharArray();
int j = ch1.length;
if(j%2==0&&j>10)
for(int i=0;i<ch1.length/2;i++){
temp = ch1[i];
ch1[i] = ch1[j-i-1];
ch1[j-i-1] = temp;
}
else if(j>10){
for(int i=0;i<(ch1.length-1)/2;i++){
temp1 = ch1[i];
ch1[i] = ch1[j-i-1];
ch1[j-i-1] = temp1;
}
}

System.out.print("the num is");
for(int i=0;i<ch1.length;i++)
System.out.print(+ch1[i]);
System.out.println();

char []ch2 = b1.toCharArray();
temp = 0;temp1 = 0;
int k = ch2.length;
if(k%2==0&&k>10)
for(int i=0;i<ch2.length/2;i++){
temp = ch2[i];
ch2[i] = ch2[k-i-1];
ch2[k-i-1] = temp;
}
else if(k>10){
for(int i=0;i<(ch2.length-1)/2;i++){
temp1 = ch2[i];
ch2[i] = ch2[k-i-1];
ch2[k-i-1] = temp1;
}
}
System.out.print("the num is");
for(int i=0;i<ch2.length;i++)
System.out.print(+ch2[i]);
System.out.println();

temp = 0;temp1 = 0;
char []ch3 = num1.toCharArray();
int l = ch3.length;
if(l%2==0&&l>10)
for(int i=0;i<ch3.length/2;i++){
temp = ch3[i];
ch3[i] = ch3[l-i-1];
ch3[l-i-1] = temp;
}
else if(l>10){
for(int i=0;i<(ch3.length-1)/2;i++){
temp1 = ch3[i];
ch3[i] = ch3[l-i-1];
ch3[l-i-1] = temp1;
}
}
System.out.print("the num is");
for(int i=0;i<ch3.length;i++)
System.out.print(+ch3[i]);
System.out.println();
}
}
...全文
291 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

public static void main(String[] args) {	
		Scanner in = new Scanner(System.in);
		System.out.println("please input something");
		String input = in.next();

		StringBuilder count1=new StringBuilder(countUpperCase(input)+"");
		StringBuilder count2=new StringBuilder(countLowerCase(input)+"");
		StringBuilder count3=new StringBuilder(countDigit(input)+"");
	
		System.out.println("大写字母个数:"+count1+"\t倒序输出:"+count1.reverse());
		System.out.println("小写字母个数:"+count2+"\t倒序输出:"+count2.reverse());
		System.out.println("数字个数:"+count3+"\t倒序输出:"+count3.reverse());
		
		in.close();
	}
	/**
	 * 统计大写字母的个数
	 * @param input
	 * @return
	 */
	public static int countUpperCase(String input){
		return count("[A-Z]", input);
	}
	/**
	 * 统计小写字母的个数
	 * @param input
	 * @return
	 */
	public static int countLowerCase(String input){
		return count("[a-z]", input);
	}
	
	/**
	 * 统计数字个数
	 * @param input
	 * @return
	 */
	public static int countDigit(String input){
		//return count("\\d", input);
		return count("[0-9]", input);
	}
	
	/**
	 * 统计
	 * @param regex
	 * @param input
	 * @return
	 */
	public static int count(String regex,String input){
		Matcher m=Pattern.compile(regex).matcher(input);
		int counter=0;
		while(m.find()){
			counter++;
		}
		return counter;
	}
  • 打赏
  • 举报
回复
System.out.print(+ch1[i]); 改为 System.out.print(ch1[i]);
  • 打赏
  • 举报
回复
for(int i=0;i<ch.length;i++){ if(ch[i]>='a'&&ch[i]<='z') a++; if(ch[i]>='A'&&ch[i]<='Z') b++; if(ch[i]<='9'&&ch[i]>='0') num++; }

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧