0
我遇到問題,爲什麼我的setMethod無法正常工作。當我使用它時,我的主要方法不顯示任何正確的答案。我最初使用一個用戶輸入到我的StringProcessor str = new StringProcessor(輸入),它完美的工作。我只是不知道爲什麼我不能讓它工作,如果我沒有在我的新對象的輸入,並使用set字符串來創建我的字符串。任何幫助都會很棒。謝謝。文本處理器分配setString方法java
import java.util.*;
public class StringProcessor {
private String noSpaces, string;
private String input, noVowels;
private String noDigitWords;
private int numOfWords = 0, uppercaseLetters = 0,
numOfDigits = 0, digitWords = 0;
private String [] wordDigits = {"zero","one", "two", "three","four",
"five", "six", "seven", "eight", "nine"};
private String [] digits = {"0", "1", "2", "3", "4",
"5", "6", "7", "8", "9"};
public StringProcessor()
{
string = ("");
}
public StringProcessor(String s)
{
StringTokenizer one = new StringTokenizer(s);
StringTokenizer str = new StringTokenizer(s);
numOfWords = str.countTokens();
for (int i = 0; i < s.length(); i++)
{
if (Character.isUpperCase(s.charAt(i)))
uppercaseLetters++;
}
for (int i = 0; i < s.length(); i++)
{
if (Character.isDigit(s.charAt(i)))
numOfDigits++;
}
String [] strSplit = s.split(" ");
for(int i = 0; i < strSplit.length; i++)
{
for (int j = 0; j < wordDigits.length; j++)
{
if (strSplit[i].equalsIgnoreCase(wordDigits[j]))
digitWords++;
}
}
noSpaces = s.replace(" ","");
noVowels = s.replaceAll("[aeiou]", "-");
noDigitWords = s;
for(int i = 0; i < 10; i++)
{
noDigitWords = noDigitWords.replace(wordDigits[i], digits[i]);
}
}
public void setString(String s)
{
string = s;
}
public String getString()
{
return string;
}
public int wordCount()
{
return numOfWords;
}
public int uppercaseCount()
{
return uppercaseLetters;
}
public int digitCount()
{
return numOfDigits;
}
public int digitWordCount()
{
return digitWords;
}
public String getNoSpaceString()
{
return noSpaces;
}
public String getNoVowelString()
{
return noVowels;
}
public String getNoDigitWordString()
{
return noDigitWords;
}
公共靜態無效的主要(字串[] args) {
StringProcessor str = new StringProcessor();
str.setString("my string");
System.out.println(str.getString());
System.out.println("words: " + str.wordCount());
System.out.println("uppercase: " + str.uppercaseCount());
System.out.println("digits: " + str.digitCount());
System.out.println("digit words " + str.digitWordCount());
System.out.println("line with no spaces: " + str.getNoSpaceString());
System.out.println("line with vowels replaced: " + str.getNoVowelString());
System.out.println("line with digit words replaced: " + str.getNoDigitWordString());
}
}
我列出的方法是我的方法應該用在我的任務中。我應該複製一種方法中的所有工作,然後將其粘貼到另一個方法中? – user3242607
@ user3242607我還沒有看到這個任務,但「你應該使用的方法」可能是** public **方法,需要在你的類中可用於該類之外的其他類。私人方法只是一種幫助實施公共方法的「幫手」方法。我看不出你的教練如何反對,但如果他們這樣做,那麼我認爲剪切和粘貼會起作用。這是一個可怕的編程習慣,但說你不能使用私有方法將是一個可怕的限制。 – ajb