请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:“abcba“、“上海自来水来自海上“均为对称字符串。

请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:“abcba”、"上海自来水来自海上"均为对称字符串。

package com.itcast.api;

/**
 * 请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:"abcba"、"上海自来水来自海上"均为对称字符串。
 *          方法:  返回值是什么?  参数列表是什么?
 *
 *   思考:  定义一个方法?   字符串反转? StringBuilder?
 */
public class TestDemo03 {
    public static void main(String[] args) {
        //定一个一个字符串
        String str = "abcbaaa";
        //调用方法
        System.out.println(isSelf(str));
    }
    public static boolean isSelf(String str){
        // 为了程序的高效完善,如果传递的是空值,返回false
         if (str == null){
            return false;
        }
        //转化为StringBuilder
        StringBuilder sb = new StringBuilder(str);
        //反转字符串 在转成String
        String s = sb.reverse().toString();
        //与原字符串比较是否相等
        //相等返回True,不相等返回False,用String#equals(); 方法
        return s.equals(str);
    }
}

定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。
要求:
1、如果传递的参数为空,返回null
2、如果传递的数组元素个数为0,返回[]
​3、如果数组为int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]


/**
 * 定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。
 *      要求:
         * ​	1、如果传递的参数为空,返回null
         * ​	2、如果传递的数组元素个数为0,返回[]
         * ​	3、如果数组为int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]
         *
 *  本题考验 字符串的拼接?  append?
 */
public class TestDemo04 {
    public static void main(String[] args) {
         //1.定义一个数组
        int[]  arr = {1,2,3};
        //2.调用方法  返回值String  参数列表 int[]  arr
        System.out.println(isAppend(arr));
    }
    private static String isAppend(int[] arr) {
        //为了程序的健壮性  做一个非空判断
        if (arr == null){
            return null;
        }
        //3.创建StringBuilder对象  调用StringBuilder#append() 字符串的拼接
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        //4.遍历数组 因为要操作所有元素
        for (int i = 0; i < arr.length; i++) {
            //拼接元素
            sb.append(arr[i]);   //arr[i] 既代表数组中的每一个元素
            //5.判断是否是最后一个元素 不是的加,
            if (i != arr.length -1)
                sb.append(",");
        }
        sb.append("]");
        return sb.toString();  //最后调用StringBuilder#toString()方法转化成字符串
    }
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我明白了。针对您的问题,可以使用以下的 Python 代码来判断一个字符串是否对称字符串: ```python def is_palindrome(s): return s == s[::-1] input_str = input("输入一个字符串:") if is_palindrome(input_str): print("这个字符串对称的") else: print("这个字符串不是对称的") ``` 该代码使用了一个 `is_palindrome()` 函数,该函数判断输入的字符串是否对称字符串。函数使用了字符串的切片操作符 `[::-1]` 对字符串进行反转,之后再与原字符串进行比较来判断是否对称字符串。 在程序,通过 `input()` 函数获取用户输入的字符串,然后调用 `is_palindrome()` 函数进行判断,并输出结果。 希望这个答案能够解决您的问题。如果您有其他问题,可以继续提问。 ### 回答2: 要判断一个字符串是否对称,可以采取以下步骤: 1. 首先,获取输入的字符串。 2. 判断字符串的长度,如果长度为0或1,则字符串必然对称,返回"是对称的"。 3. 若字符串长度大于1,则将字符串分成两半,分别为左半部分和右半部分。 4. 比较左半部分和右半部分,如果两个部分完全相同,则字符串对称,返回"是对称的"。 5. 如果左半部分和右半部分不完全相同,则字符串对称,返回"不是对称的"。 以下是对以上步骤的代码实现: ```python def is_symmetric(s): n = len(s) if n == 0 or n == 1: return "是对称的" half = n // 2 left = s[:half] if n % 2 == 0: right = s[half:] else: right = s[half + 1:] if left == right[::-1]: return "是对称的" else: return "不是对称的" # 测试用例 s1 = 'abcba' s2 = 'abccba' s3 = 'abcde' print(is_symmetric(s1)) # 输出:是对称的 print(is_symmetric(s2)) # 输出:是对称的 print(is_symmetric(s3)) # 输出:不是对称的 ``` 通过判断字符串的左半部分和右半部分是否相同,可以确定字符串是否对称。 ### 回答3: 判断一个字符串是否对称,可以通过比较字符串的左右两部分是否相等来实现。具体步骤如下: 1、输入一个字符串,并获取字符串的长度。 2、初始化两个变量,分别指向字符串的首位和末位。 3、使用一个循环,比较首尾两个字符是否相等,若相等则继续向间移动,继续比较下一个字符。若不相等,则结束循环。 4、如果循环遍历结束后,两个变量仍然相等,则说明字符串对称的,返回true;否则,返回false。 下面是一个示例代码: def is_symmetric(string): length = len(string) start = 0 end = length - 1 while start < end: if string[start] != string[end]: return False start += 1 end -= 1 return True # 测试 string1 = "abcba" print(is_symmetric(string1)) # 输出:True string2 = "abccba" print(is_symmetric(string2)) # 输出:True string3 = "abcdba" print(is_symmetric(string3)) # 输出:False 在这个示例,我们定义了一个is_symmetric函数,通过传入一个字符串判断字符串是否对称。然后我们测试了几个不同的字符串,分别输出了对应的结果。注意,在实际使用,我们可能还需要考虑字符串为空的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值