java字符串位置定位并调换位置的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java字符串位置定位并调换位置的问题相关的知识,希望对你有一定的参考价值。

java如何将形似'Relation'(谓词,'Relation'(谓词,'Relation'(谓词,','(...))))的字符串转为"谓词Relation谓词Relation谓词Relation..."形式的字符串呢
例如:','(grandparent(X,Y),','(parent(X,Z),','(parent(P,Y),'\='(P,Z))))转成"grandparent(X,Y),(parent(X,Z),parent(P,Y),P\=Z"

求通用的代码

可能通用的描述一下你的要求吗?
从例1看的话,是
Relation'(谓词,'Relation'()) 这样变成 Relation谓词Relation.... 去掉了()和单引号‘

例2
'(grandparent(X,Y),','(parent(X,Z),'

变成
grandparent(X,Y),(parent(X,Z)

好象是是去掉了单引号。

两个例子中没有找出共通点。所以不知道你要做什么。追问

'Relation'(谓词,(...))))是通用的说法,
','(grandparent(X,Y),...,'\='(P,Z))))中,
第一个','对应第一个'Relation';
grandparent(X,Y),对应谓词,;
第二个','对应第二个'Relation';
parent(X,Z),对应谓词,;
第三个','对应第三个'Relation';
parent(P,Y),对应谓词,;
'\='对应第四个'Relation';
P是谓词,Z则是'Relation'(谓词,'Relation'(谓词,'Relation'(谓词,','(...))))的结构,谢谢你!

参考技术A 我了解你要做的是什么,干吗不用prolog语言,这是作人工智能的专业语言;用java可能麻烦一些,建议使用正则表达式RegExp追问

用prolog语言,但是我想把推理树打印出来,所以要把prolog推理过程中用规则转成的项还原成prolog里的形如规则头:-规则尾的规则

参考技术B 可以考虑用递归 参考技术C public static String random(int length)
StringBuilder builder = new StringBuilder(length);
for(int i = 0; i < length; i++)
builder.append((char)(ThreadLocalRandom.current().nextInt(33,128)));

return builder.toString();

nyoj 29-求转置矩阵问题 (行,列位置调换)

29-求转置矩阵问题


内存限制:64MB 时间限制:3000ms Special Judge: No
accepted:8 submit:18

题目描述:

求一个三行三列的转置矩阵。

输入描述:

第一行一个整数n<20,表示有n组测试数据,下面是n组数据;
每组测试数据是九个整型数(每个数都不大于10000),分别为矩阵的的每项;

输出描述:

每组测试数据的转置矩阵;
请在每组输出之后加一个换行

样例输入:

2
1  2  3  4  5  6  7  8  9
2  3  4  5  6  7  8  9  1

样例输出:

1 4 7
2 5 8
3 6 9

2 5 8
3 6 9
4 7 1

提示:

没有提示哦
 
分析:
  ①、求一个矩阵的转置矩阵即就是吧该矩阵的行变成另一个矩阵的列
  ②、比如如下矩阵为:        ==>    转置矩阵为:
    A11 A12 A13            A11 A21 A31
    A21 A22 A23            A12 A22 A32
    A31 A32 A33            A13 A23 A33
 
C/C++代码实现(AC):
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <cmath>
 6 #include <stack>
 7 #include <map>
 8 #include <queue>
 9 
10 using namespace std;
11 const int MAXN = 4;
12 
13 int main()
14 {
15     int t, A[MAXN][MAXN];
16     scanf("%d", &t);
17 
18     while(t --)
19     {
20         for(int i = 0; i <= 2; ++ i)
21             for(int j = 0; j <= 2; ++ j)
22                 scanf("%d", &A[i][j]);
23 
24         for(int i = 0; i <= 2; ++ i)
25         {
26             for(int j = 0; j < 2; ++ j)
27                 printf("%d ", A[j][i]);
28             printf("%d\n", A[2][i]);
29         }
30         printf("\n");
31     }
32     return 0;
33 }

 

以上是关于java字符串位置定位并调换位置的问题的主要内容,如果未能解决你的问题,请参考以下文章

jquery查找字符串,并且定位到字符串所在位置

Java数组元素位置交换?

java 如何在字符串查找最后字符的位置

Java语言中,怎么样查找一个特定的字符串,并返回它的索引位置

java字符串查找某个字符后面出现位置的方法!

java如何实现替换指定位置的指定字符串的功能