Java 代码检测到字符串有重复的字母,即使它没有
我写了一个程序来检查一个单词是否有任何重复的字母。我有两个问题:Java 代码检测到字符串有重复的字母,即使它没有,java,loops,Java,Loops,我写了一个程序来检查一个单词是否有任何重复的字母。我有两个问题: 1-我是用面向对象代码编写的,调用main方法时遇到问题。 2-当我将代码放在一个方法中时-没有分解成碎片-布尔值在我的checkLetters方法的基础上没有改变。无论测试值是什么,输出都是相同的。 我是一名java初学者,如有任何建议,我将不胜感激。 谢谢大家! import java.util.Scanner; public class uniqueLetters { boolean isUnique; char temp
1-我是用面向对象代码编写的,调用main方法时遇到问题。
2-当我将代码放在一个方法中时-没有分解成碎片-布尔值在我的checkLetters方法的基础上没有改变。无论测试值是什么,输出都是相同的。
我是一名java初学者,如有任何建议,我将不胜感激。
谢谢大家!
import java.util.Scanner;
public class uniqueLetters
{
boolean isUnique;
char temp;
int i = 0;
String str;
char[] letters;
public static void main(String[] args)
{
testWord testing = new testWord();
}
private void testWord()
{
getArray();
checkLetters();
getStatement();
}
private void getArray()
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter your word:");
str = keyboard.nextLine();
letters = str.toCharArray();
}
private boolean checkLetters()
{
boolean isUnique = true;
for (i = 0; i < letters.length; i++)
{
for (int j = 0; j < letters.length; j++)
{
if (letters[i] == letters[j])
isUnique = false;
}
}
return isUnique;
}
private void getStatement()
{
if (checkLetters())
System.out.print("This word has all unique letters");
else
System.out.print("This word has duplicate letters");
}
}
import java.util.Scanner;
公共类专用信件
{
布尔是唯一的;
焦炭温度;
int i=0;
字符串str;
字符[]个字母;
公共静态void main(字符串[]args)
{
testWord testing=新testWord();
}
私有void testWord()
{
getArray();
方格字母();
getStatement();
}
私有void getArray()
{
扫描仪键盘=新扫描仪(System.in);
System.out.println(“请输入您的单词:”);
str=keyboard.nextLine();
字母=str.toCharArray();
}
私有布尔校验字母()
{
布尔值isUnique=true;
对于(i=0;i
在您的循环中
for (i = 0; i < letters.length; i++)
{
for (int j = 0; j < letters.length; j++)
{
if (letters[i] == letters[j])
isUnique = false;
break;
}
}
另外,当您从getStatement
调用checklets
时,不需要从testWord
方法调用它
另外,由于
testWorld
是一个方法而不是一个类,您不应该实例化它,只需调用它。感谢您的帮助!我成功了!我将代码转换回main方法中,直到我对OOP更清楚为止。我还修复了嵌套循环,因此它只在上一次迭代开始后才开始比较数组中的值。
for (i = 0; i < letters.length; i++)
{
for (int j = i + 1; j < letters.length; j++)
{
if (letters[i] == letters[j])
isUnique = false;
}
}