A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看到一个考题:
1.  定义一个无返回值的方法,传入一个字符串和一个字符,将该字符在字符串中出现的所有位置打印到控制台上;
2.  在main方法中调用该方法(字符串和字符需要键盘录入,用“,”隔开)。
PS:如果传入的字符串中没有该字符则输出-1即可

答案是这样的-----------------------------------------------------
import java.util.Scanner;
public class Test {
        public static void main(String[] args) {
                //字符串和字符需要键盘录入,用“,”隔开
                Scanner scanner = new Scanner(System.in);
                // 提示
                System.out.println("请输入字符串和字符并用“,”隔开:");
                String input = scanner.nextLine();
                // 拆分字符串和字符
                String[] arr = input.split(",");
                String text = arr[0];
                char targetChar = arr[1].charAt(0);
                // 调用方法
                print(text, targetChar);
        }       
        // 将该字符在字符串中出现的所有位置打印到控制台上
        public static void print(String text, char targetChar) {
                // 先判断是否包含该字符
                if (!text.contains("" + targetChar)) {
                        // 如果不包含, 则直接打印-1
                        System.out.println(-1);
                        // 并结束方法
                        return;
                }
                // 如果程序能执行到这里, 说明包含字符, 则遍历字符串
                for (int i = 0; i < text.length(); i++) {
                        // 获取字符
                        char ch = text.charAt(i);
                        // 判断是否相等, 相等则是出现
                        if (ch == targetChar) {
                                // 打印索引
                                System.out.println(i);
                        }
                }
        }
}

------------------------------------------------------------------------------------------------
"str".contains("" + 'c'),原来String还可以这么使用判断是否包含某个字符。。。
在这里我写了一个小程序,供大家参考:
-----------------------------------------------------------------------
import java.util.Arrays;
import java.util.Scanner;

public class Practice5 {
        public static void print(String str, char ch){
                char[] chs = str.toCharArray();
                int count = 0;
                //如果字符串含有字符,则打印字符在字符串中所在的位置(索引+1)
                //---此处有歧义,命题没有明确说明(是在字符串的索引位置上,还是在我们看到的位置上)
                for(int i = 0; i < chs.length; i++) {
                        if(chs[i] == ch){
                                System.out.print((i+1) + " ");
                        }else {
                                count++;
                        }
                }
                //判断字符串是否含有字符
                if(count == str.length()){
                        System.out.println(-1);
                }
                System.out.println(count);
        }       
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个字符串和一个字符  使用 ,隔开:");
                String inPut = sc.nextLine();
                inPut.split(",");
                String str = inPut.substring(0,(inPut.length()-2));
                char ch = inPut.charAt(inPut.length()-1);
                print(str,ch);               
        }       
}



1 个回复

倒序浏览
String掌握
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马