例如有两个字符串 String str1 ="www.iteye.com"; String str1 ="www.oteye.com"; 这两个字符串只相差一个字符,如何使用JAVA写程序,用简单的方法来判断两个字符串是否只相差一个字符?
楼上的代码根本不能运行。
修改后的
[code="java"]
public class Test1 {
public static void main(String[] args) {
check("www.iteye.com", "www.oteye.com");
}
/**
* @param args
*/
public static void check(String s1, String s2) {
int k = 0;
if(s1.length() == s2.length()){
for(int i=0,j=0;i<s1.length();i++){
if(s1.charAt(i) != (s2.charAt(i))){
k = ++j;
}
}
if(k == 1 ) {
System.out.println("只差一个字符");
} else {
System.out.println("不只差一个字符");
}
}else{
System.out.println("两字符串长度不等");
}
}
}
[/code]
按照你给的条件,两个String的长度应该相等吧
[code="java"]
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
String s1 = "www.iteye.com";
String s2 = "www.oteye.com";
int k = 0;
for(int i=0,j=0;i<s1.length();i++){
if(s1.charAt(i) != (s2.charAt(i))){
k = ++j;
}
}
System.out.println(k);
}
}
[/code]
"aaabbb"和"aaaxbbb"算不算只相差一个字符
上面代码不需要判断吗? 如果长度不一样不会报错吗?
根据你的补充,我也再补充下吧
[code="java"]
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
String s1 = "www.iteye.com";
String s2 = "www.oteye.com";
int k = 0;
if(s1.size() == s2.size()){
for(int i=0,j=0;i<s1.length();i++){
if(s1.charAt(i) != (s2.charAt(i))){
k = ++j;
}
}else{
System.out.println("两字符串长度不等");
}
}
}
[/code]