[英]Java, Passing a String from one method to another
我希望有人可以幫助我,我需要將String從下面的方法傳遞給下面的方法。 我看過Interent並使其在測試程序上工作,但似乎無法使其在我的程序上工作,這已經3個小時了,有3頁的google和一本書,哈哈。 抱歉,這很簡單,但我真的不知道。
我需要做的...我需要將變量“ Hex”從方法“ WMDBAudio”傳遞到方法“ hexConverter”。 我希望這是有道理的,謝謝您的幫助,感謝!
public class WMDBAudio{
public String WMDBAudio1(String fileInfo) throws IOException{
//code removed as there is quite a lot
int m = 0;
while (m != 1){
for (int count = 0; count < 3; count++){
hexIn = in.read();
s = Integer.toHexString(hexIn);
if(s.length() < 2){
s = "0" + Integer.toHexString(hexIn);
}
temp = temp + s;
}
if ("000000".equalsIgnoreCase(temp)){
m = 1;
hex = entry;
}
entry = entry + temp;
temp = "";
}
}
}
//十六進制轉換器方法
public class hexConverter{
public static void hexConverter(String t){
WMDBAudio w = new WMDBAudio();
String hex = "";
StringBuilder output = new StringBuilder();
for (int i = 0; i < hex.length(); i+=2){
String str = hex.substring(i, i+2);
output.append((char)Integer.parseInt(str, 16));
}
System.out.println(output);
}
}
按照約定,您可以使用大寫字母命名Java類。 因此hexConverter應該重命名為HexConverter。
通常,您可以使用以下格式從類中調用另一個類:
MyClass myClass =新的MyClass();
之后,您可以使用myClass對象訪問MyClass的方法(非私有)。
根據我的評論,更改以下兩行。
public class WMDBAudio{
public String WMDBAudio1(String fileInfo) throws IOException{
//code removed as there is quite a lot
int m = 0;
while (m != 1){
for (int count = 0; count < 3; count++){
hexIn = in.read();
s = Integer.toHexString(hexIn);
if(s.length() < 2){
s = "0" + Integer.toHexString(hexIn);
}
temp = temp + s;
}
if ("000000".equalsIgnoreCase(temp)){
m = 1;
hex = entry;
}
entry = entry + temp;
temp = "";
}
//add these 2 lines
hexConverter hexConv = new hexConverter();
hexconv.hexConverter(hex);
}}
您可以將hex設置為該類的私有屬性,從而使這兩種方法(以及同一類的所有其他方法)都可以使用。
這假設調用第一個並不一定需要調用第二個。 如果是這種情況,那么您可以從WMDBAudio調用hexConverter,並為hex String提供一個額外的參數。
編輯: Nvm剛剛看到它們是兩個不同的類。 好了,您可以將十六進制保存為兩個類的私有變量,並在WMDBAudio類上具有GetHex()方法。 然后,您可以使用該方法返回的值來創建一個hexConverter類,該類將Hex作為其構造函數的參數,從而允許進行以下操作:
WMDBAudio audio = new WMDBAudio()
...
hexConverter hexconv = new hexConverter(audio.GetHex())
或者只是向hexConverter函數提供一個附加參數,使您可以編寫如下內容:
WMDBAudio audio = new WMDBAudio()
...
hexConverter hexconv = new hexConverter()
hexconv.hexConverter(audio.GetHex())
由於hexConverter是hexConverter類中的靜態方法,因此您可以按以下方式訪問該方法
hexConverter.hexConverter(hex);
您無需創建新對象即可訪問該方法。 該方法執行通用操作,並且不更改對象的狀態。 因此,您可以像上面一樣使用它,傳遞String並獲得結果。 如果hexConverter類位於其他軟件包中,則可能還需要導入它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.