目錄
java字符串練習題3、字符串中字符是否相同判斷
判斷字符串中的字符都不相同
三種解題思路
全排列
這個題目也是沒什么難度,需要使用的函數也就是charAt函數,根據對應下標來判斷是否有重復的值內容,如果出現不是重復的我們就直接break返回結果即可,效率不會很低。
判斷字符串中的字符都不相同我們使用的是嵌套for循環第一層循環用于做比較對象a,內層循環用作比較對象b,其中下標相同的時候遍歷的肯定是一樣的值,我們需要將一樣的值提出,這樣才能保持數據的準確性,還需要判斷兩個字符是否相等,注意,這里是【字符】別寫成字符串,字符串無法使用==進行判斷。
三種解題思路基本上都是一個套路,就是向后挨個查,只要有不相同的就結束輸出結果就OK。
方法有無限種,我并沒有測試運行的時間,但是第三種的效率可能會高一些,如果有興趣的話可以測試一下時間。
package com.item.action;
public class Demo3 {
public static void main(String[] args) {
String s = "我我的我我";
// 方法1、使用的是選擇排序的方式進行判斷的
boolean result = true;
a: for (int i = 0; i< s.length(); i++) {
for (int j = 0; j< s.length(); j++) {
if (i != j) {
if (s.charAt(i) == s.charAt(j)) {
continue;
}
result = false;
break a;
}
}
}
System.out.println(result ? "1相同" : "1不同");
//方法2,也是使用選擇
boolean result1 = true;
a: for (int i = 0; i< s.length(); i++) {
for (int j = 0; j< s.length(); j++) {
if ((s.charAt(i) != s.charAt(j)) && i != j) {
result1 = false;
break a;
}
}
}
System.out.println(result1 ? "2相同" : "2不同");
// 方法3、冒泡的方式
boolean result2 = true;
for (int i = 0; i< s.length() - 1; i++) {
if (s.charAt(i) != s.charAt(i + 1)) {
result2 = false;
break;
}
}
System.out.println(result2 ? "3相同" : "3不同");
// 方法4、轉char試試
boolean result3=true;
char[] cs = s.toCharArray();
int temp=cs[0];
for (int i = 1; i< cs.length; i++) {
if(temp!=cs[i]) {
result3=false;
break;
}
}
System.out.println(result3 ? "4相同" : "4不同");
}
}
這里由于出現相同的結果就會直接做【return】/【break】操作,故而除非有相同的元素我們才能在最后輸出一條符合標準的語句,不需要做單獨的判斷。
這個判斷應用在很多的小題中,判斷去重等操作也都類似,找到對應下標進行具體的數組增刪改查操作,難度有一些,但是只是有一些,稍微用點心就能拿下的這個小題目。
我記得這個題在全排列中可以作為一個最開始的判斷,如果都是相同的字符,那么也就沒有全排列的必要了。全排列我這里先稍微涉獵一下,我們會在后期對全排列進行深入的講解與實操。
全排列從n個不同元素中任取m(m≤n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的一個排列。當m=n時所有的排列情況叫全排列。
公式:全排列數f(n)=n!(定義0!=1)
這里的!不是非的含義,這里代表的是階乘的含義,階乘就是一個正整數的階乘(factorial)是所有小于及等于該數的正整數的積,并且0的階乘為1。自然數n的階乘寫作n!。
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
當前文章:java字符串練習題3、字符串中字符是否相同判斷-創新互聯
文章位置:http://vcdvsql.cn/article2/csesoc.html
成都網站建設公司_創新互聯,為您提供服務器托管、網站建設、品牌網站建設、云服務器、動態網站、域名注冊
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯