Java 查找字符串中的重复字符
我知道这个问题被问了很多次,但我没有发现任何答案对我的情况有帮助。我有一个接收字符串的方法。我想检查字符串中的任何字符是否重复。如果是这样,该方法将返回一个空字符串。如果没有,它将返回字符串。 该方法正在查找字符串中的任何重复字符Java 查找字符串中的重复字符,java,string,character,Java,String,Character,我知道这个问题被问了很多次,但我没有发现任何答案对我的情况有帮助。我有一个接收字符串的方法。我想检查字符串中的任何字符是否重复。如果是这样,该方法将返回一个空字符串。如果没有,它将返回字符串。 该方法正在查找字符串中的任何重复字符 private String visit(String word) { int count = 0; if(word == ""){ return "<empty>"; } //alphabet is an
private String visit(String word) {
int count = 0;
if(word == ""){
return "<empty>";
}
//alphabet is an array that holds all characters that could be used in the String
for(int i = 0; i < alphabet.length; i++){
for(int j = 0; j < word.length(); j++){
if(alphabet[i] == word.charAt(j)){
count++;
}
if(count == 2){
return "";
}
}
count = 0;
}
return word;
}
私人字符串访问(字符串字){
整数计数=0;
如果(单词==“”){
返回“”;
}
//字母表是一个数组,它包含字符串中可以使用的所有字符
对于(int i=0;i
这可能不是您想要的最佳方式,但您可以使用两个for
循环来检查每个字符与所有其他字符是否重复
public static String hasRepeated(String word) {
if (word.isEmpty()) return "<empty>";
char[] charArray = word.toCharArray();
for (int i = 0; i < charArray.length; i++) {
for (int j = 0; j < charArray.length; j++) {
if (i == j) {
} else if (Character.toString(charArray[i]).
equalsIgnoreCase(Character.toString(charArray[j]))) {
return "";
}
}
}
return word;
}
公共静态字符串已重复(字符串字){
if(word.isEmpty())返回“”;
char[]charArray=word.toCharArray();
for(int i=0;i
注意:此代码假定字符的大小写无关紧要,它只是检查字符是否重复。好的,我发布了以下解决方案:
public static String hasRepeated(String word) {
if (word.isEmpty()) return "<empty>";
char[] charArray = word.toCharArray();
for (int i = 0; i < charArray.length; i++) {
for (int j = 0; j < charArray.length; j++) {
if (i == j) {
} else if (Character.toString(charArray[i]).
equalsIgnoreCase(Character.toString(charArray[j]))) {
return "";
}
}
}
return word;
}
package main;
import java.util.Arrays;
public class main {
public static void main(String[] args) {
System.out.println(hasDups("abc"));
System.out.println(hasDups("abcb"));
}
public static String hasDups(String arg) {
String[] ar = arg.split("");
Arrays.sort(ar);
boolean noDups = true;
for (int i = 1; i < ar.length && noDups; i++) {
if (ar[i].equals(ar[i-1])) noDups = false;
}
if (noDups) return arg; else return "";
}
}
packagemain;
导入java.util.array;
公共班机{
公共静态void main(字符串[]args){
系统输出打印LN(hasDups(“abc”);
系统输出打印LN(hasDups(“abcb”);
}
公共静态字符串hasDups(字符串arg){
字符串[]ar=arg.split(“”);
数组。排序(ar);
布尔noDups=true;
对于(int i=1;i
这很有效
public static String checkDuplicate(String str)
{
int count = 0;
char[] charArray = str.toCharArray();
for(int i=0;i<charArray.length;i++)
{
count = 0;
for(int j=0;j<charArray.length;j++)
{
if(charArray[i]==charArray[j])
{
count++;
if(count==2) break;
}
}
if(count==2) break;
}
if(count==2)
return "";
else
return str;
}
}
publicstaticstringcheckduplicate(stringstr)
{
整数计数=0;
char[]charArray=str.toCharArray();
对于(int i=0;i/**
*返回重复的第一个字符的索引,如果没有重复,则返回-1
*/
公共静态int firstRepeated(字符串s){
如果(s!=null){
int n=s.长度();
对于(int i=0;i<(n-1);i++){
int indx=s.indexOf(s.charAt(i),i+1);
如果(indx>0){
返回i;
}
}
}
返回-1;
}
我已经创建了一个方法,但它不能正常工作,所以我不会浪费您的时间,将其发布到这里。
除了这是问题的一半。我们需要查看它。请提供一个代码示例。此外,您可以修改所有其他有用的方法,以检查字符串中是否重复字符,从而使用字符串中的一个字符,并只是循环字符串的所有字符OK。您是否创建了任何程序或方法来实现此目的?请共享。您确定字母表包含所有可能的字符吗?请查看我的答案,正则表达式可以根据您的需要轻松调整String
Have methodtoCharArray()
你可以用它来代替split
why-1??你甚至运行过这个代码吗?!它工作得非常好。