java - 如何使用 boolean 表达式来修复此代码?

标签 java

我想创建一种方法,从提供的字符串的正面或背面或正面和背面裁剪指定数量的字符。如果要裁剪的字符数对于给定的文本长度来说太长,则会返回“无法裁剪超过文本的长度。”

参数应该执行以下操作:

@param  String text - a piece of text of any length containig ascii characters
@param  int howMany - number of characters to be cropped
@param  boolean front - true if characters should be cropped from the front of text, false don't crop from front
@param  boolean back - true if characters should be cropped from the back of text, false don't crop from back 

我目前有这段代码,但程序崩溃,特别是在显示“Cropped (both):”时,说字符串文本说“sammy”,而 int howMany 说“4”,那么 if 语句不会显示,因为 int howMany 是不大于字符串文本,但是...显示裁剪后(两者)时程序崩溃,因为不可能从前面裁剪 4 个,从后面裁剪 4 个,结果是 -3。我确信我必须在这里使用 boolean 值,但我不太确定应该如何将它们合并进来,它们是我参数的一部分,但我还没有使用它们。您能否向我解释一下如何修复此代码以完成所需的任务?该方法由 main 方法调用,参数从该方法传递到该方法。我为所有 boolean 表达式传递了 true 。这是我的代码...

public static String cropText(String text, int howMany, boolean front, boolean back)
{
  String result = "";

  if (howMany > text.length())
  {
     JOptionPane.showMessageDialog(null,"Can't crop more than the length of the text");
  }

  else
  {
     System.out.println("Cropped (both):");
     System.out.println("-----------");
     System.out.println(text.substring(howMany, text.length() - howMany));
     System.out.println("--------------");

     System.out.println("Cropped (front):");
     System.out.println("-----------");
     System.out.println(text.substring(howMany, text.length() - 0));
     System.out.println("--------------");
     front = true;

     System.out.println("Cropped (back):");
     System.out.println("-----------");
     System.out.println(text.substring(0, text.length() - howMany));
     System.out.println("--------------");
     back = true;
  }

  return result;
}

最佳答案

而不是

if (howMany > text.length())

您需要查看是否要求您在零、一侧或两侧进行裁剪。

sides = 0;
if (front) sides++;
if (back) sides++;
if(howMany * sides > text.length())

关于java - 如何使用 boolean 表达式来修复此代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21964074/

相关文章:

Java 枚举-替代映射

java - 将 MIDI 转换为 Java 数据结构(List、Hash Map、???)

java - 如何在准备好的语句中包含 Oracle SQL 所需的单引号

java - 如何在不是已配置 bean 的类中 Autowiring bean?

java 类强制转换异常错误

java - SoapUI 中的库冲突

java - 匹配字符串的正则表达式不以字母开头或结尾

java - 尝试将内容从一张纸复制到另一张纸时,jxl api 出现 ArrayIndexOutOfBoundException

java - 无法使用 SAF 检索自定义额外内容

java - 是什么让这些方法调用返回这些值?