gpt4 book ai didi

java - 在一行中获取未知长度的未声明变量的最后 5 位数字?

转载 作者:行者123 更新时间:2023-11-30 09:15:25 25 4
gpt4 key购买 nike

更新:

有一些很好的解决方案,但我意识到我的前提存在问题:一旦进程执行完毕,rt.exec 似乎不会返回到 java 代码。感谢您的帮助!


我想以编程方式每秒截取一个屏幕截图,每个屏幕截图的标题应该是时间戳。我正在使用 vlc 来实现这一点。

    starttime = System.nanoTime();
screencapProcess = rt.exec("C:\\VLC\\vlc screen:// --dshow-vdev=screen-capture-recorder --dshow-fps=1 -I dummy --dummy-quiet --rate=1 --video-filter=scene --vout=dummy --scene-format=jpg --scene-ratio=1 --scene-prefix=snap --scene-path=" + path +" --scene-prefix="+ "ScreenCapAt" + ( String.valueOf(((long)System.nanoTime() - starttime)).substring(9, 14))+" vlc://quit ");

相关部分是:

    String.valueOf(((long)System.nanoTime() - starttime)).substring(9, 14))

这会导致 nanoTimes 小于 1 的索引越界异常。

我不能将“System.nanoTime() - starttime”声明为该行之外的变量来获取它的长度,因为这会改变我的时间。

有没有办法在一行中获取这个未知长度的未声明变量的最后 5 位数字?

这个答案需要适合我的 rt.exec 行。

一些想法:

  • 位移位和掩码。
  • 管道进入我的 .exec
  • 后处理
  • 创建一个新类(class)
  • 再次调用 System.nanoTime() - starttime 会增加操作时间并导致我的计算失败。
  • 有没有更好的方法自动获取捕获时间?

最佳答案

1行(calc的声明除外):

float calc;
String diff = String.valueOf((calc = (long)System.nanoTime() - starttime)).substring(Math.max(0, String.valueOf(calc).length() - 5));

关于java - 在一行中获取未知长度的未声明变量的最后 5 位数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19901004/

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