为了账号安全,请及时绑定邮箱和手机立即绑定

返回组成单词的字母表的Java程序

返回组成单词的字母表的Java程序

开心每一天1111 2023-04-26 16:46:25
我试图了解代码片段如何在 java 中贡献程序。所以程序应该从用户那里获取一个单词的输入,然后输出是打印用户输入的单词组成的字母表。该程序运行良好,但我需要帮助来解释 for 循环在做什么。谢谢你!   import java.util.Scanner;public class J0307_search {    public static void main(String[] args) {        String str1;        int count;        char[] arr1=new char[40];        Scanner s=new Scanner (System.in);        System.out.print("input a string:");        str1=s.nextLine();        arr1[0]=str1.charAt(0);        System.out.print(arr1[0]+"");        for (int i=1; i<str1.length();i++) {            count=0;            for (int j=0;j<i;j++) {                if (str1.charAt(i)==str1.charAt(j)) {                    count++;                }            }            if (count<1) {                arr1[i]=str1.charAt(i);                System.out.print(arr1[i]+"");            }        }        System.out.print(" : only made up of these alphabets");        s.close();    }}
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

我更改代码并添加说明。


    boolean behindExist;

    for (int i=1; i<str1.length(); i++) {//loop for all character in string

        behindExist = false;

        for (int j=0; j < i; j++) {

            //check same character is exist before now char 

            //Ex) if (i = 3), check

            //str1.charAt(3) == str1.charAt(0);

            //str1.charAt(3) == str1.charAt(1);

            //str1.charAt(3) == str1.charAt(2);

            if (str1.charAt(i)==str1.charAt(j)) {

                behindExist = true;

            }

        }


        if (!behindExist) {//if not behindExist

            arr1[i]=str1.charAt(i);//add to arr1

            System.out.print(arr1[i]+"");//and print character

        }

    }

而且,这是我的代码。


    Scanner sc = new Scanner(System.in);

    System.out.print("input a string : ");

    String input = sc.nextLine();


    for(int charCode : input.chars().distinct().toArray()) {

        System.out.print((char)charCode);

    }

    System.out.print(" : only made up of these alphabets");

    sc.close();

短的。我喜欢它。我希望这能有所帮助。:)


查看完整回答
反对 回复 2023-04-26
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

我们可以使用像这样简单的东西吗?该集合将包含构成单词的唯一字符。


char[] charArr = str1.toCharArray();

Set<Character> charSet = new HashSet();

for(char c: charArr){

    charSet.add(c);

}


查看完整回答
反对 回复 2023-04-26
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

为什么要把问题复杂化。

尝试在 java 中使用集合的功能。

是这样的:-

Set<Character> set = new HashSet(Arrays.asList(str1.toCharArray()));


查看完整回答
反对 回复 2023-04-26
  • 3 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信