我是 Linux 世界的新手,我使用 Bash shell 并进行了一些练习。我怎样才能执行一个循环给计数器一个表达式?例如循环遍历文件中的单词量。
for n in(wc -w text.txt)
do
echo "word number $n"
done
Run Code Online (Sandbox Code Playgroud)
不幸的是,上面的脚本不起作用。到目前为止我发现的唯一方法是首先打印 wc -w text.txt 的值,然后将其分配给一个变量,然后循环:
wc -w text.txt
a=10 //result saw by wc -w text.txt
for((b=0; b<a; b++))
do
echo "$b"
done
Run Code Online (Sandbox Code Playgroud)
问题是我需要检索 wc -c 的值并将其直接赋值给一个变量,以防万一我必须编写一个自动运行的脚本,问题是
a= wc -w test.txt
Run Code Online (Sandbox Code Playgroud)
不管用,
有什么建议吗?
在设计一个小API的时候,我正准备编写一个引用String数组的静态值:
public static final String[] KEYS={"a","b","c"}
我发现在Joshua Bloch的"Effective Java"第14项中将其标记为"安全漏洞",他建议将其作为替代方案,声明te array'private'并提供返回不可修改列表的公共getter:
return Collections.unmodifiableList(Arrays.asList(KEYS))
Run Code Online (Sandbox Code Playgroud)
我只是不明白为什么这是必要的,初始语句中的数组被声明为final,即使它是公共的,它的元素是不可变的,如何从外部代码修改?
给定以下数据集:
| title | start | end
| bla | 10 | 30
Run Code Online (Sandbox Code Playgroud)
我想找到两个数字之间的差异(开始 - 结束)并将它们设置为一个新列,使其看起来像:
| title | time_spent |
| bla | 20 |
Run Code Online (Sandbox Code Playgroud)
数据的类型是Dataset<Row>
dataset = dataset.withColumn("millis spent: ", col("end") - col("start")).as("Time spent");
我希望它可以工作的类型,正如我在这个问题中看到的那样,但它确实如此,也许是因为该线程是关于 DataFrames 而不是 DataSets,或者也许是因为 Scala 允许它在 Java 中是非法的?
我在JSP页面遇到了一个小问题.我正在使用Stripes作为框架,但这不应该是相关的.基本上我有一个bean通过getter返回一个日期的形式GregorianCalendar.我必须在JSP中显示这个日期.当我尝试:
<fmt:formatDate type="both" dateStyle="full" value="${myObject.itsGregorian}">
Run Code Online (Sandbox Code Playgroud)
我得到一个例外,说他无法转换GregorianCalendar为Date.
我明白fmt:formatDate格式化一个Date对象而不是一个GregorianCalendar,但有没有办法扭转它?因为这是一个赋值,而且我有一个预编码的Bean,我不允许触摸bean,所以我无法将其getter转换为日期返回a Date.
我怎样才能最好地解决这个问题?
我在Spring 3中有一个简单的测试项目,基本上是控制器中的一个方法,它从arraylist中获取数据,并且"应该"将它们传递给视图Thsi是该方法的样子:
@RequestMapping(value="/showUsers")
public String showUsers(Model model){
ArrayList<User> users=this.copy();
model.addAttribute(users);
return "showUsers";
}
Run Code Online (Sandbox Code Playgroud)
这是jsp(showUsers.jsp)
它们都执行没有日志或警告显示视图但没有ArrayList<User>数据:(
<table align="center" border="1">
<tr>
<td>Nr:</td><td>Name:</td><td>Email</td><td>Modify?</td>
</tr>
<c:forEach var="user" items="${users}" varStatus="status">
<tr>
<td><c:out value="${status.count}"/></td><td><c:out value="${user.name}"/></td>
<td><c:out value="${user.email}"/></td><td>Modify</td>
</tr>
</c:forEach>
</table>
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢!
我在解码某些编码字符时遇到了一些问题.我需要解码的是%E9,我有一个像这样的字符串D%E9bardeur和degr%E9我在我的java类中做的是以下内容:
try
{
System.out.println(o);// test
o = URLDecoder.decode((String) o, "UTF-8");
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
在这个操作之后,我得到的是
D?bardeur and degr?
Run Code Online (Sandbox Code Playgroud)
当我不解码为utf-8时会发生同样的情况
有什么建议?谢谢
我正在使用 intelliJ 开发一个功能分支,我想将我的团队在 master 上所做的更改集成到我的分支中,但我搞砸了。
我检查了 master,从 Git 弹出窗口中选择了功能分支,并选择了“将当前分支重新设置为所选”,认为这会将 master 的更改添加到功能分支之上,不幸的是,情况恰恰相反。所以我现在想做的是撤销master上的rebase,我想让master回到最新的头部提交。
有什么建议吗?
我读到变基创建了一个新的提交,但我认为这没有完成,因为我有冲突,当我从 git 命令行git status从 master 运行时,我看到:
You are currently rebasing branch 'master' on 'FEATURE/....'.
(fix conflicts and then run "git rebase --continue")
(use "git rebase --skip" to skip this patch)
(use "git rebase --abort" to check out the original branch)
Run Code Online (Sandbox Code Playgroud)
no changes added to commit (use "git add" and/or "git commit -a")
我有一个小问题试图弄清楚模运算是如何计算的。我正在建立一个队列,所以我有一个循环数组。我无法弄清楚这个模运算是如何工作的。
给定 q:一个长度为 5 个元素的字符数组,MAX 常量给出了数组的最大长度 "5" 罕见是一个整数,它表示数组 q 中的第一个可用位置
public void enqueue(Character c)throws FullQueueException{
if(size()== MAX -1){ //if only 1 place left, is full, throw exc
throw new FullQueueException("Queue is full");
}
q[rare]=c;
rare=(rare+1)%MAX;
}
Run Code Online (Sandbox Code Playgroud)
现在,假设稀有的“第一个空位”是 3,那么方法完成后稀有值是多少?这是我没有得到的,rare=(rare+1)%MAX 表示rare=4%5,这给出了rare=0,8。
方法大小相同:
public int size() {
return (MAX - front + rear) % MAX;
}
Run Code Online (Sandbox Code Playgroud)
给定,front,一个表示数组中第一个元素的 int 变量假设前面是 1 和罕见的 4,所以数组中有 3 个元素,所以大小是 (5-1+4)%5 也就是 8%5给出 1.6,而实际大小是 3 有什么建议吗?这可能比 java 更数学,但可能你们中的一些人之前遇到过同样的疑问。谢谢!
我有一个160.000行文件有点麻烦,这个文件是通过从xlsx文件导出生成的,它有一个.txt扩展名,但我担心它已被导出为类似DOS的文件,在每行的结尾都有DOS换行符.我正在使用用java编写的解析器,在Ubuntu环境中运行,当我运行解析器时我得到了这个(我无法编辑,因为它的一部分我无法访问源代码),我得到NumberFormatException其中一个数字是预期的,我的行结束如下:
4449
Run Code Online (Sandbox Code Playgroud)
但解析器将其视为
For input string: "4449
"<
Run Code Online (Sandbox Code Playgroud)
你有解决方案吗?再次,我无法自己访问解析器,我将不得不编辑"在我的Ubuntu机器上"文件并删除这些行结束.
我有这个字符串:
data="week 50; data; data; data; data"
Run Code Online (Sandbox Code Playgroud)
我想用sed擦掉它的周部分,这样我就得到:数据; 数据; 数据; 数据我已经提出这个但显然不起作用,任何想法为什么?错误的规则在哪里?
码:
echo ${data} | sed '/%week.*%;/s/%week.*%;//'
Run Code Online (Sandbox Code Playgroud)
Chers