java两个字符串前缀_java – 找到两个字符串的最长公共前缀
我想找到兩個字符串的最長公共前綴.
有沒有辦法循環我的最后幾個if語句,以便我可以結束彼此不匹配的最后幾個字符?
System.out.println("Enter the first string: ");
String s = input.nextLine();
System.out.println("Enter the second string: ");
String s2 = input.nextLine();
//check if first characters are same
if (s.charAt(0) != s2.charAt(0)) {
System.out.println(""+s+ " and "+s2+ " have no common prefix");
System.exit(0);
}
if (s.charAt(0) == s2.charAt(0))
System.out.print(" "+s.charAt(0));
if (s.charAt(0) == s2.charAt(0))
System.out.print(" "+s.charAt(1));
if (s.charAt(0) == s2.charAt(0))
System.out.print(" "+s.charAt(2));
}
}
例:
Enter first string: Welcome to c++
Enter second string: Welcome to java
代碼應將Welcome作為公共前綴返回.
解決方法:
試試這個.我想這就是你想要實現的目標.如果這是正確的,我會在稍后補充解釋
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String s = "Hello Wo";
String s2 = "Hello World";
String small,large;
if(s.length() > s2.length())
{small = s2;large = s;}
else
{small = s;large = s2;}
int index = 0;
for(char c: large.toCharArray())
{
if(index==small.length()) break;
if(c != small.charAt(index)) break;
index++;
}
if(index==0)
System.out.println(""+s+ " and "+s2+ " have no common prefix");
else
System.out.println(large.substring(0,index));
}
}
編輯:
>我找到較大的字符串并選擇它作為循環的外部字符串
> toCharArray()將字符串轉換為字符,以便您可以使用Java的foreach循環遍歷字符串中的每個字符(更多click[1])
>在循環內部,您應該在兩個條件下退出
>字符串的結尾(我使用長度來查找是否到達較小的字符串的末尾)
>兩個字符串之間不再匹配字符
>你增加索引,直到你在上述某個條件中爆發
>當你退出for循環時,index將包含兩個字符串連續相等的最后一個索引.
>如果index = 0.只說不匹配,否則從0開始打印字符直到索引
標簽:java,loops,if-statement,string
來源: https://codeday.me/bug/20190517/1120129.html
總結
以上是生活随笔為你收集整理的java两个字符串前缀_java – 找到两个字符串的最长公共前缀的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java saxreader_JAVA解
- 下一篇: java分页 jar_零基础学java之