重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
用鏈表結構來解決問題
創新互聯公司專注于企業營銷型網站、網站重做改版、新田網站定制設計、自適應品牌網站建設、H5建站、商城網站開發、集團公司官網建設、外貿網站制作、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為新田等各大城市提供網站開發制作服務。
ListInteger list =new LinkedListInteger();
for(int i=1 ; i= 100 ; i++) list.add(i); //添加100個小盆友的編號對應每一個人
int j =0; //記錄報數次數
while(list.size!=1){ //list中剩下一個人得時候跳出循環
int k =list.remove(0) ; //刪除第一個元素即報數的小朋友
j++; //每次報數后 j+1
if(j%3!=0) list.add(k) ; //如果j不是3得倍數 把剛報完數字的小朋友放在隊伍的最后面
}
System.out.println(list.get(0)); //剩下的最后一個就是我們需要的編號
這樣就實現了每次報數為3的小朋友退出
如果直接將網頁內容的網址粘到微信朋友圈,就會變成網址或代碼:
將要分享的網址發到手機上,如果是在手機瀏覽器上看到的網頁,可以把網址復制下來;
進入朋友圈,長按右上角的相機圖標,把要分享的網址粘貼進去,然后點發送;
返回朋友圈,這時候看到的還是一個網址,點擊該網址進入網頁,選擇右上角的分享圖標,分享到朋友圈;
把前面發網址的那條朋友圈動態刪除掉就行了。
代碼很簡單,我這里就不多廢話了,直接奉上源碼:
復制代碼?代碼如下:
%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%
%
String?path?=?request.getContextPath();
String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%
!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"
html
head
base?href="%=basePath%"
title喝喝/title
meta?http-equiv="pragma"?content="no-cache"
meta?http-equiv="cache-control"?content="no-cache"
meta?http-equiv="expires"?content="0"????
meta?http-equiv="keywords"?content="keyword1,keyword2,keyword3"
meta?http-equiv="description"?content="This?is?my?page"
!--
link?rel="stylesheet"?type="text/css"?href="styles.css"
--
script
var?imgUrl?=?'
var?lineLink?=?'
var?descContent?=?"萬達狂歡節,?奪寶幸運星大抽獎活動開始啦!";
var?shareTitle?=?'萬達狂歡節';
var?appid?=?'wxc9937e3a66af6dc8';
function?shareFriend()?{
WeixinJSBridge.invoke('sendAppMessage',{
"appid":?appid,
"img_url":?imgUrl,
"img_width":?"640",
"img_height":?"640",
"link":?lineLink,
"desc":?descContent,
"title":?shareTitle
},?function(res)?{
_report('send_msg',?res.err_msg);
})
}
function?shareTimeline()?{
WeixinJSBridge.invoke('shareTimeline',{
"img_url":?imgUrl,
"img_width":?"640",
"img_height":?"640",
"link":?lineLink,
"desc":?descContent,
"title":?shareTitle
},?function(res)?{
_report('timeline',?res.err_msg);
});
}
function?shareWeibo()?{
WeixinJSBridge.invoke('shareWeibo',{
"content":?descContent,
"url":?lineLink,
},?function(res)?{
_report('weibo',?res.err_msg);
});
}
//?當微信內置瀏覽器完成內部初始化后會觸發WeixinJSBridgeReady事件。
document.addEventListener('WeixinJSBridgeReady',?function?onBridgeReady()?{
//?發送給好友
WeixinJSBridge.on('menu:share:appmessage',?function(argv){
shareFriend();
});
//?分享到朋友圈
WeixinJSBridge.on('menu:share:timeline',?function(argv){
shareTimeline();
});
//?分享到微博
WeixinJSBridge.on('menu:share:weibo',?function(argv){
shareWeibo();
});
},?false);
/script
/head
body
!--?script
var?imgUrl?=?"
var?lineLink?=?"
var?descContent?=?'測試別當真';
var?shareTitle?=?'分享';
var?appid?=?'wx1259b351c201841d';
function?shareFriend()?{
WeixinJSBridge.invoke('sendAppMessage',{
"appid":?appid,
"img_url":?imgUrl,
"img_width":?"200",
"img_height":?"200",
"link":?lineLink,
"desc":?descContent,
"title":?shareTitle
},?function(res)?{
//_report('send_msg',?res.err_msg);
});
}
function?shareTimeline()?{
WeixinJSBridge.invoke('shareTimeline',{
"img_url":?imgUrl,
"img_width":?"200",
"img_height":?"200",
"link":?lineLink,
"desc":?descContent,
"title":?shareTitle
},?function(res)?{
//_report('timeline',?res.err_msg);
});
}
function?shareWeibo()?{
WeixinJSBridge.invoke('shareWeibo',{
"content":?descContent,
"url":?lineLink,
},?function(res)?{
//_report('weibo',?res.err_msg);
});
}
//?當微信內置瀏覽器完成內部初始化后會觸發WeixinJSBridgeReady事件。
document.addEventListener('WeixinJSBridgeReady',?function?onBridgeReady()?{
//?發送給好友
WeixinJSBridge.on('menu:share:appmessage',?function(argv){
shareFriend();
});
//?分享到朋友圈
WeixinJSBridge.on('menu:share:timeline',?function(argv){
shareTimeline();
});
//?分享到微博
WeixinJSBridge.on('menu:share:weibo',?function(argv){
shareWeibo();
});
},?false);
/script?--
h1呵呵呵呵/h1???????????
/body
/html
申請應用 AppKey
申請方法:訪問友推網站后臺,登錄后進入應用列表,添加需要集成友推組件的 App,如下圖,添加成功后可獲取應用的 AppKey。
如何把app分享到微信
2
申請社交平臺appkey
集成前您需要為您的應用在各大社交網站的開放平臺申請賬號并通過審核,否則只能調用系統的分享菜單,無法跟蹤分享的回調事件及統計平臺
如何把app分享到微信
3
引用youtui庫項目
將youtui-lib項目庫和應用工程放在同一個目錄下
在 Package Explorer 中右鍵點擊工程的根目錄,選擇 Properties(屬性),然后點擊,在Android選項點擊Add添加youtui-lib
如何把app分享到微信
4
注冊需要分享的平臺
1.配置各分享平臺key,該配置文件為youtui_sdk.xml,配置完放入工程的assets文件夾。
2.如果需要分享到哪個平臺就將該平臺的Enable屬性設置為true.
3.如果需要將某個平臺排列到前面,只需要改變它在youtui_sdk.xml文件中的位置即可。
5
各平臺需要注意的事項:
新浪微博:
新浪微博需要驗證應用簽名,請一定要在新浪開放平臺管理中心應用信息 - 基本信息 - Android簽名包名信息 配置該信息
每次包名變化或者使用的.keystore變化都會導致應用簽名變化,請重新到新浪微博開放平臺設置。
運行Demo時如果重新編譯,因為使用的.keystore文件變化也會導致應用簽名變化,導致Demo新浪微博分享無法正常工作,請運行Demo時使用Demo工程包中提供的debug.keystore替換C:\Users\Administrator.android中的debug.keystore文件
微信和朋友圈:
微信和朋友圈也需要驗證應用簽名,請在微信開放平臺管理中心修改應用 - 開發信息配置。
QQ和QQ空間:
QQ和QQ空間使用的是騰訊開放平臺api,請在騰訊開放平臺申請賬號和注冊應用,請不要使用QQ互聯(用于網站賬號登錄)的配置,雖然都是騰訊的,但是兩個平臺并不通用,除了需要在youtui_sdk.xml配置信息,還需要在manifest文件中的android:scheme中的tencent后的一串數字換成自己應用的appid。
?xml version="1.0" encoding="utf-8"?
最后一行配置說明:選用調用系統分享菜單功能
在AndroidManifest.xml 注冊權限
在 AndroidManifest.xml 注冊需要的Activity
微信和朋友圈回調設置
如果需要分享微信和朋友圈,必需建一個 應用包名+ .wxapi 的包,在該包下建 WXEntryActivity.java,將該類繼承cn.bidaround.youtui.wxapi.WXEntryActivity即可(里面不用寫代碼)
public class WXEntryActivity extends cn.bidaround.youtui.wxapi.WXEntryActivity { }
如圖:(將com.xingxinglangtuoche替換成你應用的package名,微信回調會使用到)
如何把app分享到微信
初始化友推
開發者請在自己的程序開始,最好是在MainActivity的onCreate方法調用YtTemplate.init(this)初始化友推sdk,這樣友推sdk才能進行后續調用(否則分享等操作會出現空指針異常),例如:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); YtTemplate.init(this);/初始化友推/ initView(); } 應用退出時:
在您項目的出口Activity的 onDestroy 方法的第一行插入下面的代碼 YtTemplate.release(this); 此方法用于釋放內存,統計用戶使用情況,一旦調用了release,就必須重新調用init才能使用友推的功能,否則會出現空指針異常;
創建 ShareData 實例,調用該實例的set方法設置需要分享的數據: 創建ShareData實例,調用該實例的set方法設置自己需要分享的數據,關于該實例具體內容見下文,如果只是分享應用則只需要設置 setIsAppShare(true) 就可以分享應用在友推后臺填寫的信息和下載鏈接。
ShareData 包含的字段:
isAppShare text imagePath imageUrl description title target_url 判斷是否為分享應用 待分享的文字,短信要小于70個字符,微博要小于140個字符,如果需要分享鏈接,最好將鏈接url放在最后 待分享的本地圖片地址,分享圖片的話需要在本地和網絡圖片中選一,如果都有則優先分享本地圖片 待分享網絡圖片url,分享圖片的話需要在本地和網絡圖片中選一,如果都有則優先分享本地圖片 待分享內容的描述 待分享內容的標題 待分享內容的跳轉鏈接
通過創建該類實例,調用實例的set方法設置這些參數,例如:
ShareData shareData = new ShareData(); shareData.isAppShare = false;//設置為true則分享的信息從友推后臺填寫的應用信息中讀取,可動態更新,后面的值不用設置。 shareData.setDescription("友推積分組件"); shareData.setTitle("友推分享"); shareData.setText("通過友推積分組件,開發者幾行代碼就可以為應用添加分享送積分功能,并提供詳盡的后臺統計數據,除了本身具備的分享功能外,開發者也可將積分功能單獨集成在已有分享組件的app上,");
shareData.setTarget_url("");
shareData.setImageUrl("");
shareData.setImagePath("");
各個平臺分享數據的限制和注意事項:
因為各個平臺的分享限制,請分享時盡量分享圖片+鏈接,依靠鏈接來了解更多信息
1) 微信 朋友圈 微信分享為linkcard形式,超出的文字部分不會顯示
2) 新浪微博 很低版本的新浪微博不支持發多類型微博,進行圖文分享時只會分享圖片,新浪微博分享消息最長為140字
3) QQ、QQ空間 QQ分享的消息最長40字,分享的標題最長30字,多余的部分將被忽略,description將被忽略 QQ空間分享的消息最長200字,分享的標題最長600字,多余的部分將被忽略,description將被忽略
4) 騰訊微博 只有image(imagePath或imageUrl)和text被分享,其他字段忽略,騰訊微博分享消息最長為140字
5) 人人網 只有image(imagePath或imageUrl)和text被分享,其他字段忽略
6) 短信 只有text被分享,其他字段忽略
7) 郵件 只有text被分享,其他字段忽略
如何把app分享到微信
調用友推分享推薦組件
為應用添加一個分享推薦按鈕,如:
如何把app分享到微信
在分享按鈕事件中調用youtui的組件即可,示例代碼:
public void onClick(View v) { if(v.getId()==R.id.popup_bt)
{ /調用友推分享推薦組件,YouTuiViewType類的常量為分享樣式參數,目前支持白色列表和黑色網格兩種/ /創建分享的模板,第一個參數為activity,第二個參數為分享窗口樣式,第三個參數為是否需要積分/
YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.BLACK_POPUP,false); //黑色網格樣式不需要積分活動 /YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.WHITE_LIST,ture);/ //白色列表樣式需要積分活動
ShareData shareData = new ShareData();
shareData.isAppShare = false;//設置為true則分享的信息從友推后臺填寫的應用信息中讀取,可動態更新后面的值不用設置。
shareData.setDescription("友推積分組件");
shareData.setTitle("友推分享");
shareData.setText("通過友推積分組件,開發者幾行代碼就可以為應用添加分享送積分功能,并提供詳盡的后臺統計數據,除了本身具備的分享功能外,開發者也可將積分功能單獨集成在已有分享組件的app上,快來試試吧 ");
shareData.setTarget_url("");
shareData.setImageUrl("");
shareData.setImagePath("");
blackTemp.setShareData(shareData);//設置默認的分享數據;shareData 設置參看4.6
//**如果要為某個平臺設置不一樣的分享信息。則單獨設置*/ //blackTemp.addData(YtPlatform.PLATFORM_QQ, shareData); //調出分享窗口 blackTemp.show();
//如果需要自定義分享事件,可以創建監聽事件,然后在回調中處理 YtShareListener listener1 = new YtShareListener() {
@Override
public void onSuccess(ErrorInfo arg0)
{
}
@Override public void onPreShare()
{
}
@Override
public void onError(ErrorInfo arg0)
{
}
@Override
public void onCancel() {
}
};//給新浪微博添加分享監聽 blackTemp.addListener(YtPlatform.PLATFORM_SINAWEIBO, listener1);
//給QQ添加分享監聽 //
blackTemp.addListener(YtPlatform.PLATFORM_QQ, listener2); }
1、同為java新手,想了下這樣寫可以,但覺得可能還有更簡單的辦法實現,僅供參考,共同交流
public?static?void?main(String[]?args)?{
/*
?*?有80個小朋友手拉手圍成一圈,?由第一個小朋友開始從1開始數,?數到3的小朋友退出,再從后面的小朋友從1數起,
?*?數到3的再退出,以此游戲下去,問最后剩下哪個小朋友??要求:使用LinkedList
?*/
LinkedListString?list?=?new?LinkedListString();
for?(int?i?=?1;?i?=?80;?i++)?{
list.add(""?+?i);//?存進去80個小朋友
}
int?count?=?1,?i?=?0;//?定義兩個計數變量
while?(i??list.size()??list.size()??1)?{//?i必須小于鏈表長度,同時鏈表長度為1則結束
if?(count?==?3)?{
//?從一開始數,數到3?則退出第i個
System.out.println("退出的孩子是第"?+?(i?+?1)?+?"個?,為"+?list.remove(i));
count?=?1;//?重新開始從1數數
}?else?{//否則繼續向下數
count++;
i++;
}
if?(i?==?list.size())?{//遍歷一次后,i置零,再從頭開始遍歷
System.out.println("此時剩余"+list.size()+"個孩子");
i?=?0;
}
}
System.out.println("鏈表長為"?+?list.size()?+?",最后一個是:"?+?list.get(0));
}
2、并不知道答案對不對,自己簡單推了幾個是都符合的,80個孩子的時候結果如圖