我的一个AP项目包括将每个单词从一个字符串中分离出来,我已经尝试过无数次但没有成功!我的班级尚未学习阵列,正则表达式或拆分,所以如果你可以提供帮助,请避免任何这些。但是我们确实学习了substring,charAt,indexOf,length,trim ......
这是我的一次尝试:
(请注意,为了让我真正注意到我已将它们分开,我尝试将N
添加到我正在重新创建的字符串中,这是newWord)
public class Functions {
public static String stringReversal(String word){
if (word.length() <= 1){
return word;
}else{
char c = word.charAt(0);
return stringReversal(word.substring(1)) + c;
}
}
public static Boolean palindrome(String word){
Boolean palindrome;
if (word.equalsIgnoreCase(stringReversal(word))){
return palindrome = true;
} else{
return palindrome = false;
}
}
public static String pigLatin(String sentence){
if(sentence.length() <= 1){
return sentence;
} else {
String newWord = "";
return newWord += pigLatin(sentence.substring(0, sentence.indexOf(" "))) + " N ";
}
}
}
主要:
public class Main {
public static void main (String [] args){
Scanner in = new Scanner(System.in);
String word = in.nextLine();
System.out.println(Functions.test(word));
}
}
但是输出只打印N
!任何人都可以请求帮助,并展示一种我可以实现这一目标的方法,我已经尝试了许多想法,但没有任何效果。
答案 0 :(得分:0)
由于这似乎与家庭作业有关,我只会发布一些提示和建议,你必须结合我的提示和建议来自己提出解决方案。
我相信这个:
sentence.indexOf("")
应该是这样的:sentence.indexOf(" ")
检查indexOf空字符串没有多大意义(它总是返回零,因为在字符串中的任何地方都可以找到空字符串)。
public static void main(String[] args) {
String word = "a bit of words";
System.out.println(test(word));
}
public static String test(String sentence){
if(sentence.length() <= 1){
return sentence;
} else {
String newWord = "";
return newWord += test(sentence.substring(0, sentence.indexOf(" "))) + " N ";
}
}
以上版画:a N
但是,如果您的输入只有一个单词,那么sentence.indexOf(" ")
将返回-1。你需要检查一下。建议:修改if语句,以检查字符串是否包含空格字符。
要解决赋值,你需要某种循环(递归也可以是一种循环)来为每个单词重复一个略微修改的过程。提示:获取第一个单词,然后获取除提取的单词之外的原始字符串。
答案 1 :(得分:0)
public static void main( String[] args )
{
Scanner in = new Scanner( System.in );
try
{
while( true )
{
String word = in.nextLine();
System.out.println( splitWords( word ) );
}
}
finally
{
in.close();
}
}
private static String splitWords( String s )
{
int splitIndex = s.indexOf( ' ' );
if( splitIndex >= 0 )
return s.substring( 0, splitIndex ) + " N " + splitWords( s.substring( splitIndex + 1 ) );
return s;
}
答案 2 :(得分:-1)
您可以使用标准方法String#split()
String[] words = sentence.split(' ');
注意,单词是数组