当前位置: 首页 > article >正文

同人文生成器狗屁不通文章生成器各种生成器 简易写法

同人文生成器/狗屁不通文章生成器/各种生成器 简易写法

网上有很多这种生成器,准备自己用java来写写。作为一个java菜鸡,用到的方法很简单。

主要逻辑就是用ArrayList把句子都添加进去,然后重组。

用同人文生成器举例,首先用Scanner得到主角1和主角2的名字:

     System.out.print("主角1的名字");Scanner in = new Scanner ( System.in );String x = in.nextLine();System.out.print("主角2的名字");Scanner in2 = new Scanner ( System.in );String y = in.nextLine();

然后生成一个ArrayList,用它来装自己输进去的句子:

ArrayList<String> sentence = new ArrayList <String>();

写一个function来装句子:

putSentences(sentence);
 public static void putSentences(ArrayList<String> sen) {sen.add("XXXXX");}

然后add后面就可以填入任意句子。

add的时候我们把两个人的名字用特定字符表示(e.g. 主角1是3,主角2是4)要注意这两个字符不能与input主角名的字母重复,因为后面要用到替代,比如我会把所有3都替换成主角1的input name,4都换成主角2的input name。

举个例子:

  sen.add("只有明知与4相关的事情,才能让3感受到岁月的深刻,找到关于未来的支点。");

填好过后,就只用把这些句子重组了,我们写一个function:

System.out.println(getLit(sentence, x, y));
 public static String getLit(ArrayList<String> sen,String n1, String n2){String finR = ""; String get = ""; int k = 99;while (sen.size()>20){ k = (int)(Math.random()*sen.size());get = sen.get(k); get = get.replaceAll("3",n1); get=get.replaceAll("4",n2);sen.set(k,get);finR= finR+ sen.remove(k);}  return finR;}  
  1. 用random得到一个位置k

  2. 得到k位置的对应句子,然后“换头“。

    这个时候就把所有的特定字符(用来表示主角1和2的)换成我们用Scanner得到的input names。用String的replaceAll这个function来换头。

  3. remove这个k位置上的sentence,把这个remove的return添加到最终的String里。

    这一步可以防止句子重复添加,ArrayList的remove这个方法中,它return的就是我们remove掉的东西。所以相当于我们把选中的句子从ArrayList里remove出来,添加到最终的String里。

  4. 因为我加了很多句子进去,每次不一定要把所有句子都重组,所以写了个while loop,在这个ArrayList长度小于等于20时,就不继续生成了。

  5. 最后return这个finR,也就是最终的String,包含了我们随机换头后的所有句子。

使整篇文章更加通顺,可以适当添加\n来提行。可以写一个random来随机提行,也可以在比较长的句子后面直接写\n提行。

还是挺好玩的,初学者们值得一试!!

http://www.lryc.cn/news/2413095.html

相关文章:

  • 用云服务器搭建一个属于自己的网站(手把手教学)
  • 怎么建立局域网_tp-link无线路由器怎么设置 tp-link无线路由器设置方法【图文教程】...
  • 数据采集工具有哪些,3个常用数据采集工具
  • fxcm外汇模拟交易mt4_利用MT4交易外汇,修改数据不构成诈骗罪(15个辩护观点及法条)...
  • 《算法谜题》
  • SQLServer2005新特性
  • 新发布【迷城的国度】【大富翁8】两个游戏的内存属性修改器
  • 版权原因,QQ不再内置flash插件,需安装二个插件
  • 编码器的类型和原理
  • OD使用经验【转载】
  • 阿里云服务器如何恢复出厂设置?
  • 青铜修炼手册:Axure地图搜索交互
  • 一本经典书籍--《Linux命令行与shell脚本编程大全》
  • Android 开发是否有前途?
  • 详解 C++ 对象模型
  • 自动化测试:behave
  • 从58%到10%‼️翟天临的论文查重报告单
  • 6.携程架构实践 --- 数据库
  • 《大国策》杂志正规吗
  • 【转载】C语言,利用网络短信验证码接口实现手机短信发送
  • java jdk 1.6配置_JDK1.6配置
  • 数据中台 | 3分钟带你读懂数据中台的由来
  • Spring Boot配置MongoDB多数据源
  • 你是否也想拥有属于自己的酷炫的个人博客?从0到1的详细搭建过程,看完学不会你找我
  • 电脑中毒该怎么办?电脑中病毒后的处理步骤!电脑感染病毒怎么办?电脑中病毒的症状!怎么知道电脑中毒了
  • s3c6410 ARM开发板烧写uboot新手入门笔记
  • 2024年必备的14个Windows常见问题自救指南,小白必学~
  • NOIP2011 计算系数
  • php实现一个网站计数器
  • GCC编译器介绍