Java高手帮下忙!?
5、一个字符串:Strings="aabbaaaaabbaaccaaaaa"查询“aa“出现的次数。(要求定义成有参数的方法,接收两个参数,一个是字符串,一个是要查询的字...
5、一个字符串:String s="aabbaaaaabbaaccaaaaa " 查询“aa“出现的次数。(要求定义成有参数的方法,接收两个参数,一个是字符串,一个是要查询的字符串) 6、一个字符串:String s="aa bb cc dd";把多个空格变成一个换行 7、金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 (要求定义成有参数的方法) 8、掷鼓子1000次 1-6出现的次数(掷鼓子得到1-6之间的数可用随机产生的数)
展开
3个回答
2014-03-05
展开全部
5. public int kmp(String str, String cStr) {//str为字符串,cStr为要查询的字符串
int i = 0;
int j = 0;
while (i < str.length() && j < cStr.length()) {
if (j == 0 || str.charAt(i) == cStr.charAt(j)) {
++j;
++i;
}
else {
j = 0;
}
}
if (j > cStr.length() - 1)
return i - cStr.length();
return -1;
}6. public void spaceToRow(String str){
int i=0;
String str2="";
char c;
while(i<str.length()){
if((c=str.charAt(i))!=' '){
str2+=c;
}
i++;
}
System.out.println(str2);
}7.package number2;public class NumToChina { /**
*
*@author 诚信天下hxl
* @serialData 2009.10.9
*/ public void changeMoney(String num) {
int dotIndex = num.indexOf('.');// 判断钱是否为整数
String money;
String china = "";
if (dotIndex != -1) {// 含小数
int dot = num.indexOf('.');
money = num.substring(1, dot);
china = transInt(money);
china += tranDot(num.substring(dot + 1, num.length()));
} else {// 整数
money = num.substring(1);
china = transInt(money) + "整";
}
System.out.println(num + ":" + china);
} // 将整数部分转换
private String transInt(String num) {
String money = num;// 将传递过来的整数部分的money进行处理
int intValue = Integer.valueOf(money);// 计算整数部分 int num2 = 100000000;// 亿
String chinaMoney = "";// 用于返回转换的汉字货币
int j = 0;
int count = 0;// 只计算到亿 // 当这个数的最大位出现不为0的数时,后面的才可以为零(防止如:“零零零。。。元”这种情况)
boolean isMax = false;
while (num2 > 0) {
count++;// 用于限制整数部分的访问次数
j = intValue / num2;// 获取相应位置的数字(个位除外)
switch (count) {
case 1:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "亿");
}
break;
case 2:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "千万");
} else if (isMax) {
chinaMoney += "零";
}
break;
case 3:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "百万");
} else if (isMax) {
chinaMoney += "零";
}
break;
case 4:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "十万");
} else if (isMax) {
chinaMoney += "零";
}
break;
case 5:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "万");
} else if (isMax) {
chinaMoney += "零";
}
break;
case 6:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "千");
} else if (isMax)
chinaMoney += "零";
break;
case 7:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "百");
} else if (isMax)
chinaMoney += "零";
break;
case 8:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "十");
} else if (isMax)
chinaMoney += "零";
break;
case 9:
j = intValue % 10;
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "元");
} else if (isMax)
chinaMoney += "零";
break;
}
intValue -= j * num2;// 减去最高位
num2 /= 10;// 改变位权(如百万--->十万,万--->千)
} return chinaMoney; } // 将小数部分进行转换,此处只计算到小数点后两位,及角、分
public String tranDot(String num) {
String money = "";
int value = Integer.valueOf(num);
if (value < 10) {
money += numTo(value) + "角";
return money;
} int j = 0;
if ((j = value / 10) != 0)
money += numTo(j) + "角";
else
money += "零";
if ((j = value % 10) != 0)
money += numTo(j) + "分"; return money;
} // 将阿拉伯数字转换为相应的汉字
private String numTo(int num) {
switch (num) {
case 1:
return "一";
case 2:
return "二";
case 3:
return "三";
case 4:
return "四";
case 5:
return "五";
case 6:
return "六";
case 7:
return "七";
case 8:
return "八"; case 9:
return "九"; }
return " ";
} public static void main(String[] args) {
NumToChina n = new NumToChina();
n.changeMoney("*63445");// "*"号代表钱的符号
n.changeMoney("*6344534.5");
n.changeMoney("*6344534.30"); }}
8、package number2;public class Total { /**
* @param args
*/
int arr[] = new int[7];// 记录骰子点数的次数 public void times() {
int i = 0;
while (i < 1000) {
int n = (int) (Math.random() * 6 + 1);// 产生随机数
arr[n]++;// 对应次数加1
i++;
}
} public static void main(String[] args) {
Total t = new Total();
t.times();
for (int i=1;i<t.arr.length;i++) {
System.out.println("骰子" + i + "出现的次数为:" + t.arr[i]);
}
}}
int i = 0;
int j = 0;
while (i < str.length() && j < cStr.length()) {
if (j == 0 || str.charAt(i) == cStr.charAt(j)) {
++j;
++i;
}
else {
j = 0;
}
}
if (j > cStr.length() - 1)
return i - cStr.length();
return -1;
}6. public void spaceToRow(String str){
int i=0;
String str2="";
char c;
while(i<str.length()){
if((c=str.charAt(i))!=' '){
str2+=c;
}
i++;
}
System.out.println(str2);
}7.package number2;public class NumToChina { /**
*
*@author 诚信天下hxl
* @serialData 2009.10.9
*/ public void changeMoney(String num) {
int dotIndex = num.indexOf('.');// 判断钱是否为整数
String money;
String china = "";
if (dotIndex != -1) {// 含小数
int dot = num.indexOf('.');
money = num.substring(1, dot);
china = transInt(money);
china += tranDot(num.substring(dot + 1, num.length()));
} else {// 整数
money = num.substring(1);
china = transInt(money) + "整";
}
System.out.println(num + ":" + china);
} // 将整数部分转换
private String transInt(String num) {
String money = num;// 将传递过来的整数部分的money进行处理
int intValue = Integer.valueOf(money);// 计算整数部分 int num2 = 100000000;// 亿
String chinaMoney = "";// 用于返回转换的汉字货币
int j = 0;
int count = 0;// 只计算到亿 // 当这个数的最大位出现不为0的数时,后面的才可以为零(防止如:“零零零。。。元”这种情况)
boolean isMax = false;
while (num2 > 0) {
count++;// 用于限制整数部分的访问次数
j = intValue / num2;// 获取相应位置的数字(个位除外)
switch (count) {
case 1:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "亿");
}
break;
case 2:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "千万");
} else if (isMax) {
chinaMoney += "零";
}
break;
case 3:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "百万");
} else if (isMax) {
chinaMoney += "零";
}
break;
case 4:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "十万");
} else if (isMax) {
chinaMoney += "零";
}
break;
case 5:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "万");
} else if (isMax) {
chinaMoney += "零";
}
break;
case 6:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "千");
} else if (isMax)
chinaMoney += "零";
break;
case 7:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "百");
} else if (isMax)
chinaMoney += "零";
break;
case 8:
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "十");
} else if (isMax)
chinaMoney += "零";
break;
case 9:
j = intValue % 10;
if (j != 0) {
isMax = true;
chinaMoney += (numTo(j) + "元");
} else if (isMax)
chinaMoney += "零";
break;
}
intValue -= j * num2;// 减去最高位
num2 /= 10;// 改变位权(如百万--->十万,万--->千)
} return chinaMoney; } // 将小数部分进行转换,此处只计算到小数点后两位,及角、分
public String tranDot(String num) {
String money = "";
int value = Integer.valueOf(num);
if (value < 10) {
money += numTo(value) + "角";
return money;
} int j = 0;
if ((j = value / 10) != 0)
money += numTo(j) + "角";
else
money += "零";
if ((j = value % 10) != 0)
money += numTo(j) + "分"; return money;
} // 将阿拉伯数字转换为相应的汉字
private String numTo(int num) {
switch (num) {
case 1:
return "一";
case 2:
return "二";
case 3:
return "三";
case 4:
return "四";
case 5:
return "五";
case 6:
return "六";
case 7:
return "七";
case 8:
return "八"; case 9:
return "九"; }
return " ";
} public static void main(String[] args) {
NumToChina n = new NumToChina();
n.changeMoney("*63445");// "*"号代表钱的符号
n.changeMoney("*6344534.5");
n.changeMoney("*6344534.30"); }}
8、package number2;public class Total { /**
* @param args
*/
int arr[] = new int[7];// 记录骰子点数的次数 public void times() {
int i = 0;
while (i < 1000) {
int n = (int) (Math.random() * 6 + 1);// 产生随机数
arr[n]++;// 对应次数加1
i++;
}
} public static void main(String[] args) {
Total t = new Total();
t.times();
for (int i=1;i<t.arr.length;i++) {
System.out.println("骰子" + i + "出现的次数为:" + t.arr[i]);
}
}}
2014-03-05
展开全部
回答你的第六个问题;代码如下:import java.util.StringTokenizer;public class TestString1 { /**
* @param args
*/
public static void main(String[] args) {
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
} }}
你要的是不是这种效果?
* @param args
*/
public static void main(String[] args) {
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
} }}
你要的是不是这种效果?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-05
展开全部
第五道题:// matchStr:要统计的字符串// srcStr:源字符串public int match(String matchStr, String srcStr) {
Pattern p = Pattern.compile(srcStr);
Matcher m = p.matcher(matchStr);
int i = 0;
while (m.find()) {
i++;
}
return i;}用正则表达式来做应该是最简单的了
Pattern p = Pattern.compile(srcStr);
Matcher m = p.matcher(matchStr);
int i = 0;
while (m.find()) {
i++;
}
return i;}用正则表达式来做应该是最简单的了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询