Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 46

0
votes
answers
35 views
+10

如何檢測DownloadString是否失敗?

0

我試圖把我的外部IP放在一個標籤中,所以我正在下載基於網站的結果,但是當我通過VPN更改我的IP時,應用程序崩潰了,我相信這是因爲它不檢查if它試圖讓繩子掉下來。如何檢測DownloadString是否失敗?

在窗體加載...

If Label1.Text = LastIp Then 

     Try 

     Dim wc As New WebClient 
     Label1.Text = wc.DownloadString("http://icanhazip.com/") 

     If you can not then 

     Label.Text = "Failed to get IP" 

     End if 

End If 

表...

enter image description here

+1

使用[**'Try/Catch'語句**](https://docs.microsoft.com/EN-US/DOTNET /視覺基本/語言參考/報表/的try-catch-終於語句)。此外,如果你能告訴我們你遇到的錯誤會有幫助。 –

沙发
0
0

你可以設置一個回調,並指定該文件的路徑:

Dim wc As New WebClient 
AddHandler wc.DownloadStringCompleted, AddressOf DownloadStringComplete 
wc.DownloadStringAsync(New Uri("http://icanhazip.com/myfile.txt", UriKind.Absolute)) 

Private Sub DownloadStringComplete(ByVal sender As Object, ByVal e As DownloadStringCompletedEventArgs) 

If Not IsNothing(e.Error) Then 
    Label1.Text = e.Error.Message 
ElseIf e.Cancelled Then 
    Label1.Text = "canceled" 
Else 
    Label1.Text = e.Result 
End If 

End Sub 
+0

沒有文件,它只是網站。 –

+0

如果您只是希望默認頁面只使用「http://icanhazip.com」而沒有文件名,或者更好的是指定頁面名稱,如「http://icanhazip.com/default.html」。如果你想下載整個網站是另一個主題。 –

+0

不要使用'If Not IsNothing(e.Error)Then',這是VB6風格的代碼。改用'If.Error IsNot Nothing Then'來代替。 –

0
votes
answers
43 views
+10

帶前導零的索引(字符串與數字格式連接)

1

如何獲得此索引列表,但是前導零(「%04d」格式)?帶前導零的索引(字符串與數字格式連接)

["index{}".format(i) for i in range(20)] 

旺旺: 「index0001」, 「index0002」,..

THX &親切的問候

+1

'[「指數{:04d}「。格式(i)對於範圍(20)中的i] –

沙发
0
2

我覺得zfill是你所需要的

["index{}".format(str(i).zfill(4)) for i in range(20)]

43
votes
answers
14 views
+10

.NET / C# - Convert char[] to string

What is the proper way to turn a char[] into a string?

The ToString() method from an array of characters doesn't do the trick.

沙发
+200
String mystring = new String(mychararray);
板凳
+130

Use the string constructor which accepts chararray as argument, start position and length of array. Syntax is given below:

string charToString = new string(CharArray, 0, CharArray.Count());
地板
+100

Another alternative

char[] c = { 'R', 'o', 'c', 'k', '-', '&', '-', 'R', 'o', 'l', 'l' };
string s = String.Concat( c );

Debug.Assert( s.Equals( "Rock-&-Roll" ) );
0
votes
answers
39 views
+10

查找字符串中特定字符集合後的值

0

所以我正在運行一個批處理文件,該文件將從字符串中提取特定變量的值。例如:查找字符串中特定字符集合後的值

[2017-11-03T12:18:56.263733+00:00] [XFM] [TRACE:1] [EPMHFM-00000] [XFM] [ecid: XDS.0000.0000.0000.0001] [File: CHsvDSSystemInfo.cpp] [Line: 6002] [userId: ] [appName: GGCOST] [pid: 9640] [tid: 6632] [host: AWEU1ORHYAP05P] [nwaddr: 172.20.36.105:0;] [errorCode: 0] [srcException: NotSpec] [errType: 1] [dbUpdate: 1] [11.1.2.4.202.5211] [[SYSINFO:Application=GGCOST; PID=9640; NumUsers=0; CPU(Cores)=8; NumTasks=0; NumErrors=1; PhysicalMem=60129071104; UsedPhysicalMem=38635540480; ProcUsedPhysicalMem=3277619200; VirtualMem=140737488224256; UsedVirtualMem=5590806528; ProcUsedVirtualMem=3582775296; UsedCPU=9.3284; ProcUsedCPU=56.3594; NumCubesInRAM=7007; NumDataRecordsInRAM=1693604; NumRecordsInLargestCube=92334]] 

從上面的字符串,我期待提取PID號,在這種情況下是6212可不可以通過批處理腳本來完成?

沙发
0
1
@ECHO OFF 
SETLOCAL 
SET "var=[2017-11-11T07:27:23.088173+00:00] [XFM] [TRACE:1] [EPMHFM-00000] [XFM] [ecid: ] [File: XFMDataSource.cpp] [Line: 508] [userId: ] [Msg arguments: ] [appName: MyApp] [pid: 6212] [tid: 3176] [host: Server1] [nwaddr: 172.24.62.192:0;] [errorCode: 0] [srcException: NotSpec] [errType: 1] [[XDS: XFMDataSource process exiting now ...]] " 
SET "var1=%var:(= %" 
SET "var1=%var1:)= %" 
SET "result=not found " 
FOR %%a IN (%var1%) DO IF "%%a"=="[pid:" (
    SET "result=" 
) ELSE ( 
    IF NOT defined result SET result=%%a 
) 
SET "result=%result:~0,-1%" 

ECHO result is %result% 

GOTO :EOF 

所以是的,這是可能的。這是許多方面之一。

首先將result設置爲報告字符串,然後使用字符串var上的標準for功能。當前身串[pid:被發現,設置result什麼這樣,當for傳送下一個字符串%%aresult將是不確定的和%%a不會[pid: - 然後設置result到找到字符串(這意味着result現定義)

在處理剩餘的字符串之後,所需要的只是從result中刪除最後一個字符。

另一種方法是

FOR %%a IN (%var:]=%) DO IF "%%a"=="[pid:" (

這將與什麼更換]字符,這意味着這樣繼for環路set設置爲result值將不要求拆除的最後一個字符將不是必需的。

我插入了兩行來刪除(),這會導致您發佈的新數據出現問題。請注意,導出並處理了一個新變量var1

有一些字符會導致cmd問題並需要特殊處理。 !將引起問題,如果delayedexpansion被調用,但我們需要知道這種類型的信息之前設計一個解決方案,因爲它a影響所需的代碼。

代碼會在後面找到字符串字符串[pid:出現在變量中。以下字符串PID將被忽略。

+0

感謝它爲那個特定的例子工作。但是,我想我給出的例子不夠健壯。我已經更新了這個例子,它似乎沒有爲它工作,但它應該,因爲我相信for循環只考慮第一個PID值正確?此外,我還設置了enabledelayedexpansion,它會影響代碼嗎? –

+0

我對代碼進行了幾次測試,看起來%% a在第一次迭代中佔據了整行,而不是直到空間。任何想法爲什麼? –

+0

我看不到你的測試,但我會得出結論,你的變量是「引用」 – Magoo

板凳
0
1

的另一種方法,I learned just yesterday

@echo off 

>t.txt echo [2017-11-03T12:18:56.263733+00:00] [XFM] [TRACE:1] [EPMHFM-00000] [XFM] [ecid: XDS.0000.0000.0000.0001] [File: CHsvDSSystemInfo.cpp] [Line: 6002] [userId: ] [appName: GGCOST] [pid: 9640] [tid: 6632] [host: AWEU1ORHYAP05P] [nwaddr: 172.20.36.105:0;] [errorCode: 0] [srcException: NotSpec] [errType: 1] [dbUpdate: 1] [11.1.2.4.202.5211] [[SYSINFO:Application=GGCOST; PID=9640; NumUsers=0; CPU(Cores)=8; NumTasks=0; NumErrors=1; PhysicalMem=60129071104; UsedPhysicalMem=38635540480; ProcUsedPhysicalMem=3277619200; VirtualMem=140737488224256; UsedVirtualMem=5590806528; ProcUsedVirtualMem=3582775296; UsedCPU=9.3284; ProcUsedCPU=56.3594; NumCubesInRAM=7007; NumDataRecordsInRAM=1693604; NumRecordsInLargestCube=92334]] 

for /F "tokens=3" %%a in ('"setx /F t.txt /D ] dummyVar /R 0,1 [pid:"') do set "var=%%a" & goto continue 
:continue 
set "var=%var:~0,-1%" 
echo %var% 

缺點:需要的文件;創建一個永久的環境變量(當然可以很容易地刪除)

0
votes
answers
15 views
+10

R中的正則表達式來區分字符串中的男性/女性

0

我有我需要理清的性別描述的字符串。舉例來說,如果我有以下,R中的正則表達式來區分字符串中的男性/女性

string1 = "FEMALE AND FEMALE" 
string2 = "FEMALE AND MALE" 

我需要改變string1說「多名女性」,並string2說「男性和女性」。

使用gsub,由於MALE嵌套在FEMALE中,因此我無法編寫識別string2string1不同的替換。使用「YEP」作爲一個確認字符串第一,我已經試過,沒有運氣以下,

gsub(".*FEMALE.*MALE.*", "YEP", string1) 
gsub(".*FEMALE.*[^M]ALE.*", "YEP", string1) 
gsub(".*FEMALE.*[^]MALE.*", "YEP", string1) 
gsub(".*FEMALE.*(^MALE).*", "YEP", string1) 
gsub(".*FEMALE.*MALE.*", "YEP", string2) 
gsub(".*FEMALE.*[^M]ALE.*", "YEP", string2) 
gsub(".*FEMALE.*[^]MALE.*", "YEP", string2) 
gsub(".*FEMALE.*(^MALE).*", "YEP", string2) 

我需要考慮通配符的順序,因爲不是所有的字符串將顯示爲「女性與女性」或「女性,男性「,有時他們顯示爲」1女12 MALES「或」B女2X女「等

任何想法如何處理嵌套字符串使用正則表達式?

+0

不是很確定你在尋找附加字符串的方式,你添加在你的文章的底部附近,但你可以使用像'(?:(((??1 D) d +)( ?: s * [az] b s *)* s +)?( b(?:FE)?MALES? b)'獲取您要查找的所有數據。 – ctwheels

沙发
0
0

好吧,我在發佈後立刻就明白了這一點。

運行gsub(".*FEMALE.*\b(M)ALE.*", "YEP", string1)結果爲"FEMALE AND FEMALE",而gsub(".*FEMALE.*\b(M)ALE.*", "YEP", string2)結果爲"YEP"。所以這個工作。

+0

不需要括號。 – Sneftel

0
votes
answers
21 views
+10

如何將大字符串傳遞給iMessage擴展?

0

我正在創建一個將圖像轉換爲ASCII藝術並將其作爲scrollView發送的iMessage擴展。我現在有一個if語句,如果在轉錄本中打開消息,它會將其分類到不同的視圖控制器。然後我嘗試通過URL發送ASCII字符串,但字符串太長而無法通過URL發送。有沒有辦法在不使用URL的情況下在iMessage泡泡中接收字符串?如何將大字符串傳遞給iMessage擴展?

我的整個項目可以在這裏找到: https://github.com/liamrosenfeld/Image-to-Ascii-Art/tree/iMessage-Extension

+0

我也遇到了這個限制。你可以嘗試將你的字符串壓縮成數據,或者你可以添加一個服務器組件來存儲字符串,然後你可以只傳遞該服務器對象的對象ID。 – EmilioPelaez

+0

壓縮能夠將60000個字符轉換爲5000嗎? –

沙发
0
0

我發現火力是經濟實惠,易於實現到的iMessage擴展。我通過上傳asciiArt並通過保存密鑰來實現它:

let postArt = self.ref.child("asciiArt").childByAutoId() 
postArt.setValue(art) 
artID = postArt.key 
0
votes
answers
34 views
+10

如何將帶有「java方法簽名」格式的字符串分解成部分?

0

我有如下所示的格式圖案的複雜的字符串:如何將帶有「java方法簽名」格式的字符串分解成部分?

(Command)(Parameter_1,Parameter_2,Parameter_3,Parameter_n) 

實施例:PADDING_LEFT(LAST_USE_COUNTER(1450,5),5,0)

欲它們分割如下:

命令:PADDING_LEFT

Parameter_1:LAST_USE_COUNTER(1450,5)

Parameter_2:5

Parameter_3:0

有沒有辦法來打破這樣的字符串?

+0

參數是如何定義的?作爲自我定義的模式和文字? – gtgaxiola

+1

你看過使用像Antlr這樣的工具http://www.antlr.org –

+0

看看[如何在Java中分割字符串](https://stackoverflow.com/q/3481828)並讓我們知道你有什麼具體的問題分裂它(應該包括一個[mcve])。 – Dukeling

沙发
0
1

我會走下正則表達式路線。更健壯的方法可能是使用Java語法分析器,如JavaParser

MethodCallExpr bs = 
    (MethodCallExpr) JavaParser.parseExpression 
        ("PADDING_LEFT(LAST_USE_COUNTER(1450,5),5,0)"); 
System.out.println(bs.getName()); 
List<Expression> arguments = bs.getArguments(); 
for (int i = 0; i < arguments.size(); ++i) { 
    System.out.printf("Argument_%d: %s%n", (i + 1), arguments.get(i)); 
} 
0
votes
answers
11 views
+10

我可以從nullptr構造一個string_view嗎?

2

我剛剛發現xcode/clang不允許從char * nullptr構造std :: string_view。我期望這將size()設置爲0,併爲data()返回一個空值,這也是我Ubuntu Linux上的gcc 7.2如何實現它的。我可以從nullptr構造一個string_view嗎?

我查過http://en.cppreference.com/但是找不到任何評論,所以標準說法是什麼?

沙发
0
1

嗯,是的,沒有。您不能將空指針傳遞給std::string_view的構造函數,因爲這會違反它們的先決條件;請參見[string.view.cons]中的構造函數2和3。

std::string_view的默認構造函數集大小爲零,空它的數據,所以你將不得不使用該構造來代替,或者使用此解決方法/訣竅:

std::string_view().swap(your_string); 
+0

您都指向「[海峽,str + traits :: length(str))是一個有效範圍。「但這在這裏沒有幫助。 [nullptr,0]肯定是一個有效的範圍。所以這一切都取決於性狀的標準定義::長度,我可以在哪裏找到它? – Lothar

+0

@Lothar你可能知道'std :: string_view'只是'std :: basic_string_view >的別名。第二個參數是特徵。它似乎沒有說如果'我'超出範圍會發生什麼,所以我只是假設它是無效的[這裏](https://timsong-cpp.github.io/cppwp/char .traits.require#標籤:char.traits.require) – Rakete1111

0
votes
answers
11 views
+10

字符串字計數器

0

我必須打印一個字符串中的字數統計N次?字符串字計數器

例如:

一二三四三兩個五

輸出:3

由於一個,四和五隻出現一次。

我的代碼顯示我的輸出爲1

什麼是錯我的代碼和邏輯?謝謝。

import java.util.*; 
public class Hello { 

    public static void main(String[] args) { 
     Scanner scan=new Scanner(System.in); 
     String s=scan.nextLine(),b; 
     int n=scan.nextInt(); 
     int c=0,f=0,i; 
     String[] a=s.split(" "); 
     for(i=0;i<a.length;i++) 
     { 
      b=a[i]; 
      for(int j=i+1;j<a.length;j++) 
      { 
      if(b.equalsIgnoreCase(a[j])) 
      { 
       c++; 
      } 

      } 
      if(n==c) 
      { 
       f++; 
      } 
      else 
      { 
       c=0; 

      } 
     } 
     System.out.print(f); 

    } 
} 
+2

我建議通過它符合一個調試器步進一行。 – notyou

+0

你永遠不會重置'i'變量。 –

沙发
0
1

我看到三個原因導致您的結果不正確。

第一個是c 如果一個字在這裏只有一次,那麼if聲明if(b.equalsIgnoreCase(a[j]))永遠不會爲真。這意味着c將永遠等於0 所以,你需要使用1作爲默認值c還是應該使用下面的語句if (n == c + 1)

第二點是,你應該重新設置檢查c值值爲c,即使它等於n

然後用這雙for循環:

for (i = 0; i < a.length; i++) { 
    b = a[i]; 
    for (int j = i + 1; j < a.length; j++) { 

當你尋找這是一個值。有一次而已,每一個單詞的最後一個實例也會被計算在內。 有很多方法可以解決這個問題。其中之一是使用Set<String>,只計算以前沒有使用過的詞。

所以最終你將有類似的東西:

int c=1,f=0,i; 
String[] a=s.split(" "); 
Set<String> words = new HashSet<>(); 
for (i = 0; i < a.length; i++) { 
    b = a[i]; 
    if (words.add(b)) { 
    for (int j = i + 1; j < a.length; j++) { 
     if (b.equalsIgnoreCase(a[j])) { 
     c++; 
     } 
    } 
    if (n == c) { 
     f++; 
    } 
    c = 1; 
    } 
} 
板凳
0
0

我想這是因爲當n == c時你不初始化C。因此它在一個和一個匹配後增加到1。它運作不好。它應該爲0每個循環 也爲什麼j從i + 1開始?每個循環後,它會逐一失去比較自[j]越來越小。它應該始終包含完整輸入號碼列表

0
votes
answers
22 views
+10

What is the difference between String and string in C#?

Example (note the case):

string s = "Hello world!";
String s = "Hello world!";

What are the guidelines for the use of each? And what are the differences?