gpt4 book ai didi

java - 从字符串中删除随机字符

转载 作者:行者123 更新时间:2023-12-02 03:03:27 25 4
gpt4 key购买 nike

这是一个学校项目。目标是创建一个程序来读取用户的输入,然后通过随机删除字符来缩短输入,直到达到 140 个字符。这是我到目前为止所做的。目前,它只删除一个字符,然后停止运行。感谢您的任何建议

import java.util.Scanner;
import java.util.Random;

public class Main {

public static void main(String[] args) {

Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the tweet you want to shorten:");
String tweet = null;

tweet = keyboard.nextLine();

int tweetLength = tweet.length();

Random rand = new Random();


do {

} while (tweetLength <= 140); {
int characterposition = rand.nextInt(tweetLength);
String shorttweet = tweet.substring(0, characterposition-1);
String shorttweet2 = tweet.substring(characterposition);

tweet = shorttweet + shorttweet2;
System.out.println("Shortented Tweet: " + tweet);
tweetLength = tweet.length();

}

最佳答案

你的循环格式错误。您应该使用:

public static void main(String[] args) {

Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the tweet you want to shorten:");
String tweet = null;

tweet = keyboard.nextLine();

int tweetLength = tweet.length();

Random rand = new Random();

while (tweetLength > 140) {
int characterposition = rand.nextInt(tweetLength);
String shorttweet = tweet.substring(0, characterposition);
String shorttweet2 = tweet.substring(characterposition + 1);

tweet = shorttweet + shorttweet2;
System.out.println("Shortented Tweet: " + tweet);
tweetLength = tweet.length();
}

您之前拥有的是一个空的do-while循环,后面跟着一个代码块,这就是它只发生一次的原因。请注意,我还更改了循环条件 - 我们应该在长度大于 140 时循环,而不是在长度小于 140 时循环。

出于学习目的,以下是您的原始循环:

do {
//you didn't do anything inside the loop!
} while (tweetLength <= 140);

//all of your code was after the loop

编辑:

我们还需要修复此行 rand.nextInt(tweetLength),因为它将返回 0(含)和 tweetLength 之间的 int (独家的)。当返回 0 时,下一行将中断,因为您正在调用 substring(0, -1)。感谢帕特里克帕克的这一点

关于java - 从字符串中删除随机字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42104674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com