【问题标题】:Convert string to rubbish将字符串转换为垃圾
【发布时间】:2015-07-13 12:38:13
【问题描述】:

我正在尝试创建一个接收输入字符串并返回垃圾字符串值的函数

String foobar (String input)
{
  String rubbish;
  ......
  ......
  returns rubbish

}

垃圾字符串值与下面类似

如果有人能够为我提供示例函数或指导我如何去做,我将不胜感激

【问题讨论】:

  • 你到底想做什么?给定的String 应该如何影响“垃圾”?您是否正在尝试生成某种哈希?对我来说,不清楚你在问什么。
  • 给定的字符串不需要影响垃圾,我不想生成哈希
  • 那么同一个字符串会产生不同的垃圾值吗?
  • 那么为什么要把它作为参数呢?我认为这是XY-problem。您对此的总体目标是什么?
  • 我认为真正的问题还没有被问到int 到 char 并生成 int。你有 1252 分......真正的问题是你的俱乐部 TROLL 在哪里。

标签: java string


【解决方案1】:

为什么需要字符串输入?

String foo(){return "everythingyouwant";}

如果你不需要你的输入和输出相关,那就足够了

【讨论】:

  • 这是一个问题,没有答案。因此它应该是一个评论。
  • @Turing85 没听说过反问句?
  • 此外,他从未提及 random 值,这就是为什么返回字符串文字回答了他的问题
【解决方案2】:

如果你想要一个函数为相同的输入字符串返回相同的垃圾,这会很好。

public String rubbish(String input)
{
    String result = "";

    long seed = 0;
    long size = 0;

    for(int i = 0; i < input.length(); i ++)
    {
        seed += input.charAt(i);
    }

    seed %= Long.MAX_VALUE;
    size = seed % 3000;

    Random rand = new Random(seed);

    for(int i = 0; i < size; i ++)
    {
        result += (char)rand.nextInt(256);
    }

    return result;
}

另外,如果你想让字符串每次都不一样,你可以把new Random(seed)改成new Random(),它会随机化字符串。

【讨论】:

    【解决方案3】:

    这种方法会随机产生“垃圾”:

    String foobar(String input){
        //dont know for what is there input parameter
        StringBuilder sb = new StringBuilder();
        int length=(int)(Math.random()*1000); //random length from 0 to 1000
        for(int i=0;i<length;i++){
            sb.append((char)(Math.random()*Character.MAX_VALUE)); //random character
        }
        return sb.toString();
    }
    

    【讨论】:

      【解决方案4】:

      这里是使用 ascii 表生成随机字符串的示例

      public static void main(String[] args) {
          String res = rubbish();
          System.out.println(res);
      
      }
      
      private static String rubbish() {
          Random randomGenerator = new Random();
          StringBuffer sb = new StringBuffer();
          for (int i = 0; i < 1000; i++) {
              sb.append(Character.valueOf((char)randomGenerator.nextInt(231)));
          }
          return sb.toString();
      }
      

      «P/?e?}?Ò¤*q5?jf?|c¤(J¨EA?,_#殣?ßNÖL?¿¢D??³?Ñ?X©Â»É. ~1¡c??¨E ]?p4¬N¶¦¤JVÕ·25??áÇÇbÒ?9?xÓ ?~?!rlÃ?ß0h)È?v?}¸-???´+-?༳?ÙÒZ¨I3-ϦØ?/?CÎ??}?©¶gã?©

      【讨论】:

        【解决方案5】:

        将混乱存储在文件中 然后做

        private String mess=""; 
        
        public void loadFile(String absolutePath){
        Scanner scanner;
        try{scanner=new Scanner(new File(absolutePath));
        while(scanner.hasNextLine()){mess+=scanner.nextLine();}
        scanner.close();
        }catch(Exception){
        if(scanner!=null){scanner.close();}
        }
        }
        

        并在你的函数中返回混乱

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多