Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何找出某个字符在字符串中的第一次、第二次或第三次出现?_Java - Fatal编程技术网

Java 如何找出某个字符在字符串中的第一次、第二次或第三次出现?

Java 如何找出某个字符在字符串中的第一次、第二次或第三次出现?,java,Java,如果我有一个像“telephone”这样的字符串,并且希望输出返回为tel*phon*,我该如何做呢 程序将打印出字符串中的每个字母。如果这是那封信第一次出现,我会写的。但如果它再次出现,我会打印一个星号 你好,我是Hell*o 再见就要走了 协调就是协调***(哦,你是对的) 请帮忙,谢谢!这不是家庭作业。。。这是期末考试的练习!谢谢 我正在尝试类似于。。。但我不知道该怎么走得更远。。。请帮忙 Scanner keyboard = new Scanner(System.in); String

如果我有一个像“telephone”这样的字符串,并且希望输出返回为tel*phon*,我该如何做呢

程序将打印出字符串中的每个字母。如果这是那封信第一次出现,我会写的。但如果它再次出现,我会打印一个星号

你好,我是Hell*o

再见就要走了

协调就是协调***(哦,你是对的)

请帮忙,谢谢!这不是家庭作业。。。这是期末考试的练习!谢谢

我正在尝试类似于。。。但我不知道该怎么走得更远。。。请帮忙

Scanner keyboard = new Scanner(System.in);
String s;
int i, j, count;
System.out.print("Enter string: ");
s = keyboard.nextLine();



for(i=0; i < s.length(); i++){
   count = 0;
   for(j=i+1; i < s.length(); j++){
        if(s.charAt(i) == s.charAt(j)){
           count++;
        }
        if(count < 1)
           System.out.print(s.charAt(i));
        else
           System.out.print("*");
   }
}
扫描仪键盘=新扫描仪(System.in);
字符串s;
int i,j,计数;
System.out.print(“输入字符串:”);
s=键盘.nextLine();
对于(i=0;i
有些人告诉我要发布代码,所以我现在就发布了。我该如何编辑这个精确的代码使其工作?请帮助:(

Set seen=new HashSet();
字符串结果=”;
for(char ch:input.toCharArray())
{
如果(见。包含(ch))
结果+=“*”;
其他的
{
结果+=ch;
见。添加(ch);
}
}
input
是输入字符串,
result
是输出字符串

基本上,这将遍历输入字符串中的每个字符,并根据是否已看到该字符,将适当的字符追加到结果字符串中。

Set seen=new HashSet();
字符串结果=”;
for(char ch:input.toCharArray())
{
如果(见。包含(ch))
结果+=“*”;
其他的
{
结果+=ch;
见。添加(ch);
}
}
input
是输入字符串,
result
是输出字符串


基本上,这将遍历输入字符串中的每个字符,并根据是否已看到该字符,将相应的字符追加到结果字符串中。

这里有一个方便的方法。
Set
add()上有一个布尔属性
,如果值已插入集合,则返回false

方法:创建一个数据结构,以确保只向其中插入唯一值。如果向其中插入了唯一值,则可以继续构建返回字符串。如果没有,则需要生成星号

请参考下面的代码。要保证对大写字符和小写字符的处理不带偏见,请在
之前调用
toLowerCase()
。tocharray()

publicstaticstringfilterchars(最后一个字符串字){
最终集=新的HashSet();
最终StringBuilder=新StringBuilder();
for(字符c:word.toCharArray()){
若有(集合添加(c)){
附加(c);
}否则{
builder.append('*');
}
}
返回builder.toString();
}

这里有一个方便的方法。
Set
add()
上有一个布尔属性,如果该值已经插入到集合中,则返回false

方法:创建一个数据结构,以确保只向其中插入唯一值。如果向其中插入了唯一值,则可以继续构建返回字符串。如果没有,则需要生成星号

请参考下面的代码。要保证对大写字符和小写字符的处理不带偏见,请在
之前调用
toLowerCase()
。tocharray()

publicstaticstringfilterchars(最后一个字符串字){
最终集=新的HashSet();
最终StringBuilder=新StringBuilder();
for(字符c:word.toCharArray()){
若有(集合添加(c)){
附加(c);
}否则{
builder.append('*');
}
}
返回builder.toString();
}

协调不是很协调吗**?另外,请查看
设置
。请参阅API文档和
替换()
method用铅笔在一张纸上完成。试着为你正在做的事情找到一个配方。这个配方叫做算法。试着将算法翻译成java。如果你仍然有问题,请回到这里发布你的代码!协调不是很协调吗**?另外,请查看
Set
。参考API文档和
replace()
method用铅笔在一张纸上写。试着为你正在做的事情找到一个配方。这个配方叫做算法。试着把算法翻译成java。如果你还有问题,回到这里来发布你的代码!@Dylan谢谢。我写这篇文章时没有任何java编译器在我面前,所以我只是猜测它会工作:):D所有这些不同的语言之间会产生混淆,我真希望Java在for循环中有这样的功能。它甚至是从C扩展而来的,但它仍然不能在字符串上迭代。这并不是很难解决,但它确实(对我来说)引起了混乱。谢谢你改变它@迪伦:谢谢。我写这篇文章时没有任何Java编译器在我面前,所以我只是猜测它会工作:D所有这些不同的语言之间会产生混淆,我真希望Java在for循环中有这样的功能。它甚至是从C扩展而来的,但它仍然不能在字符串上迭代。这并不是很难解决,但它确实(对我来说)引起了混乱。谢谢你改变它!
Set<Character> seen = new HashSet<Character>();
String result = "";
for (char ch : input.toCharArray())
{
    if (seen.contains(ch))
        result += "*";
    else
    {
        result += ch;
        seen.add(ch);
    }
}
public static String filterChars(final String word) {
    final Set<Character> set = new HashSet<>();

    final StringBuilder builder = new StringBuilder();
    for(Character c : word.toCharArray()) {
        if(set.add(c)) {
            builder.append(c);
        } else {
            builder.append('*');
        }
    }
    return builder.toString();
}