黑马程序员技术交流社区
标题:
新人做一个基础题遇到的问题,望解惑
[打印本页]
作者:
黄成祚
时间:
2015-7-21 21:02
标题:
新人做一个基础题遇到的问题,望解惑
* 第一题:1、判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串。
* @author Administrator
*
*/
public class Test1 {
public static void main(String[] args) {
String str = "aabcdffifdcbaa";//定义一个字符串
int b = str.length();//字符串串长度
int c = b / 2;//字符串半长 用于定义for循环中x的取值范围
//for循环遍历前一半的字符与后一半字符的倒序依次比较,若中间出现不相同的字符 则判断该字符串不是对称字符串
for(int x=0;x<c;x++){
while(str.charAt(x)!=str.charAt(b-1-x)){
System.out.println("该字符串不是对称字符串");
return;
}
}
System.out.println("该字符串是对称字符串");
}
}
问题1 当不用return时 若定义的字符串是不对称的 运行时为什么一直显示"该字符串不是对称字符串"
2 System.out.println("该字符串是对称字符串");是在循环外面 ,为什么在有return时不显示,老是在想怎么解释这个。
作者:
莱克神
时间:
2015-7-21 21:35
1 当不用return时 若定义的字符串是不对称的 运行时为什么一直显示"该字符串不是对称字符串"
答:说一下我的理解,如果你不写return语句时。每当while中的判断语句为true时,就会运行一次输出语句。当你写入return时,当while中的判断语句为true时就会先运行输出语句,然后再运行return结束语句,函数运行结束。弹栈,在栈内存中消失。也就是说只要运行到return就结束了。
System.out.println("该字符串是对称字符串");是在循环外面 ,为什么在有return时不显示
答:因为当有return时,执行到return函数已经弹栈了,函数不存在了。
不知道说得对不对……:lol
作者:
gongyanfa123
时间:
2015-7-21 22:30
过来学习学习。
作者:
China_Riven
时间:
2015-7-21 22:45
还有对称字符串 这样的说法的.这题是靠数学 么
作者:
黄成祚
时间:
2015-7-23 10:31
莱克神 发表于 2015-7-21 21:35
1 当不用return时 若定义的字符串是不对称的 运行时为什么一直显示"该字符串不是对称字符串"
答:说一下我 ...
原来这样 啊,return还这个作用 ,学习了!
作者:
章浩
时间:
2015-7-23 10:38
楼主是不清楚return的作用吧。return作用:一般的就是用在有反回值的方法中,用来返回方法指定类型的值,同时结束方法执行;也可以用在返回值为void的方法中,用来终止方法运行;
作者:
郁金香大公爵
时间:
2015-7-23 10:43
[code]public class Test2 {
public static void main(String[] args){
String str = "abc";
cmp(str);
}
public static void cmp(String str) {
boolean result = true; //定义默认结果是正确的
int count = (str.length()-1)/2; //定义个数,如果是奇数除以2,int类型结果还是整数,用于for循环比较的次数;
System.out.println(count);
for (int x = 0;x <= count ;x++ ){ //循环遍历
if(str.charAt(x) != str.charAt(str.length()-1-x)){ //指定索引位置返回的字符值进行比较,如果不相等
result = false; //结果为不对称
}
}
if(! result){
System.out.println("该字符串是不对称的");
}
else{
System.out.println("该字符串是对称的");
}
}
}
这是我的代码 你可以看看
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2